String Hash List Set Sorted Set
String,用的最多,對象序列化成json然后存儲
1.對象緩存,單值緩存
2.分布式鎖
Hash,不怎么用到
1.可緩存經常需要修改值的對象,可單獨對對象某個屬性進行修改
HMSET ?user ?{userId}:name ?zhuge ?{userId}:balance ?1888
HMSET ?user ?1:name ?zhuge ?1:balance ?1888
HMGET ?user ?1:name ?1:balance ?
2.電商購物車
優點:更小的CPU和內存,節約空間 缺點:過期只能使用field,不能使用key上,集群架構下不適用大規模使用
List
微博和微信公號消息流
Set應用場景
微信抽獎小程序
1)點擊參與抽獎加入集合 SADD key {userlD}
2)查看參與抽獎所有用戶 SMEMBERS key?? ? ?
3)抽取count名中獎者 SRANDMEMBER key [count] / SPOP key [count]
微信微博點贊,收藏,標簽
1) 點贊 SADD ?like:{消息ID} ?{用戶ID}
2) 取消點贊 SREM like:{消息ID} ?{用戶ID}
3) 檢查用戶是否點過贊 SISMEMBER ?like:{消息ID} ?{用戶ID}
4) 獲取點贊的用戶列表 SMEMBERS like:{消息ID}
5) 獲取點贊用戶數 SCARD like:{消息ID}
Zset集合操作實現排行榜
1)點擊新聞 ZINCRBY ?hotNews:20190819 ?1 ?守護香港
2)展示當日排行前十 ZREVRANGE ?hotNews:20190819 ?0 ?9 ?WITHSCORES
3)七日搜索榜單計算 ZUNIONSTORE ?hotNews:20190813-20190819 ?7 hotNews:20190813 ?hotNews:20190814... hotNews:20190819
4)展示七日排行前十 ZREVRANGE hotNews:20190813-20190819 ?0 ?9 ?WITHSCORES