Redis五種數據類型應用場景(學習筆記)

一、String應用場景

 

單值緩存

set key  value 

對象緩存

mset k1 v1 k2 v2 

mget k1 k2

分佈式鎖

setnx k1 v1

set k1 v1 ex   10 nx 放置意外終止

計數器

incr key
Web集羣Session共享

分佈式ID

incrby key 100

 

二、Hash 應用場景

 

對象緩存

hmset user 3:name mawenbo 3:age 32 3:email [email protected]

hmget use 3:name 3:age 3:email

HMSET 不宜存儲BigKey及BigValue。如果數據量太大,可採用分段存儲。比如User數據量太大,將User進行拆分,Hash分開存儲User0,User1,User2,User3......

 

 

 電商購物車

 

hset jeuc:100001  goodsId_10002   1

hincrby jeuc:100001  goodsId_10002   1

hgetall jeuc:100001

 

 優點:

  同類數據歸併整合存儲,方便數據管理

  相比String操作小號內存與CPU更小

  相比String存儲更節省空間。

缺點:

  過期功能不能使用在filed,只能使用在key上

  Redis集羣架構下不適合大規模存儲。

  三、List 應用場景

棧:Stack = LPUSH + LPOP

隊列: LPUSH + RPOP

阻塞隊列: LPUSH + BRPOP

微信和微博公衆號信息流

 

  四、Set 應用場景

微信抽獎小程序

SADD Key  {userID}

SMEMBERS key 獲取所有

SRANDMEMBER KEY [count] 從集合中隨機選出count個元素,元素不從key中刪除

SPOP KEY [count] 從集合中隨機選出count個元素,元素從key中刪除

 

微信微博點贊,收藏,標籤

1)點贊

SADD like:{消息Id} {用戶ID}

2)取消點贊

SREM like:{消息Id} {用戶ID}

3)檢查用戶是否點過贊

SISMEMBER like:{消息ID} {用戶ID}

4)獲取點讚的用戶列表

SMEMBERS like:{消息ID}

5)獲取點贊用戶數
SCARD like:{消息ID}

集合操作微博微信關注模型

 五、ZSet 應用場景

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章