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到一個服務器)
然而,如何用用戶名來查詢?是這樣?
因此,最好的辦法是:冗餘設計:
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 ...