Redis-key的設計技巧


  1. 把表名轉換為key前綴, 比如: tag:
  2. 第二段放置用於區分key的字段--對應mysql中的主鍵的列名
  3. 第三段放置主鍵值
  4. 第三段寫列名

用戶表user, 轉換為redis的key-value存儲

userid username password email
9 Lisi 111111 lisi@163.com

比如:

127.0.0.1:6379> set user:userid:9:username lisi
OK
127.0.0.1:6379> set user:userid:9:password 111111
OK
127.0.0.1:6379> set user:userid:9:email lisi@163.com
OK
127.0.0.1:6379>
127.0.0.1:6379> keys user:userid:9*    #查找有幾個屬性
1) "user:userid:9:password"
2) "user:userid:9:username"
3) "user:userid:9:email"
127.0.0.1:6379> 



注意: 實際中經常要通過username來查找信息, 只能通過再建立一個對應關系

127.0.0.1:6379> set user:username:lisi:userid 9    #建立一個username和userid對應的表
OK
127.0.0.1:6379> 
127.0.0.1:6379> get user:username:lisi:userid    #獲取到userid
"9"
127.0.0.1:6379> 
127.0.0.1:6379> keys user:userid:9*    #通過userid找到所有鍵
1) "user:userid:9:password"
2) "user:userid:9:username"
3) "user:userid:9:email"
127.0.0.1:6379> 
127.0.0.1:6379> get user:userid:9:email    #獲取其它鍵的信息
"lisi@163.com"
127.0.0.1:6379> 

如果要通過email查詢, 只能再維護

127.0.0.1:6379> set user:email:lisi@163.com:userid 9
OK
127.0.0.1:6379> get user:email:lisi@163.com:userid
"9"
127.0.0.1:6379> keys user:userid:9*
1) "user:userid:9:username"
2) "user:userid:9:email"
3) "user:userid:9:password"
127.0.0.1:6379> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM