Redis key 設計技巧

Redis key 設計技巧mysql

 

1: 把表名轉換爲key前綴 如, tag:sql

2: 2段放置用於區分區key的字段--對應mysql中的主鍵的列名,userid服務器

3: 3段放置主鍵值,2,3,4...., a , b ,c分佈式

4: 4,寫要存儲的列名ide

 

用戶表 user  , 轉換爲key-value存儲ui

useridspa

username設計

passworde索引

emailci

9

Lisi

1111111

lisi@163.com

 

set  user:userid:9:username lisi

set  user:userid:9:password 111111

set  user:userid:9:email   lisi@163.com

 

keys user:userid:9*

 

(分佈式的時候能夠同時hash到一個服務器)

 

然而,如何用用戶名來查詢?是這樣?

image.png

因此,最好的辦法是:冗餘設計:

Set  user:username:lisi:uid  9

(根據user:username:lisi:uid找到9,而後再根據9找到其餘信息)

 

2 注意:

在關係型數據中,除主鍵外,還有可能其餘列也步驟查詢,

如上表中, username 也是極頻繁查詢的,每每這種列也是加了索引的.

 

轉換到k-v數據中,則也要相應的生成一條按照該列爲主的key-value

Set  user:username:lisi:uid  9  

 

這樣,咱們能夠根據username:lisi:uid ,查出userid=9,

再查user:9:password/email ...

相關文章
相關標籤/搜索