Redis 基礎類型
1.string [key,value]
一般可用作緩存
字符串命令setnx??只有在 key 不存在時設置 key 的值壮啊。
分布式緩存
2.hash
一般可存儲購物車類型的數(shù)據(jù)
3.list
一般可用于消息推送 ,比如推送最新的五條消息?
key :userId
value: 消息id1,消息id2
(從左邊)
移出并獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止再登。
(從右邊)
移出并獲取列表的最后一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止庸汗。
4.set
一般可用于 抽獎,? 朋友圈關注,點贊等
抽獎的功能: key=抽獎活動ID
參加抽獎? ? SADD==>value=userId
總抽獎人數(shù) SMEMBERS key
隨機抽獎? SRANDMEMBER KEY [count] 此方法集合長度不變,多次抽獎可出現(xiàn)重復用戶
SPOP key [count]? 此方法會移除并返回集合中的一個隨機元素.
點贊 : SADD? ?like:{消息ID}? {userId}
?取消點贊: SREM ?like:{消息ID}? {userId}
檢查用戶是否點贊: SISMEMEBER??like:{消息ID}? {userId}
獲取點贊的用戶列表 SMEMBERS??like:{消息ID}??
獲取點贊的用戶數(shù)? SCARD??like:{消息ID}?
共同關注的人 取交集: SINTER?set1 {a,b,c} set2{b,c,d},set3{c,d,e}?set1^set2^set3={c}
我關注的人也關注他 取并集 SUNION?set1 {a,b,c} set2{b,c,d},set3{c,d,e}?set1&set2&set3={a,b,c,d,e}
我可能認識的人:取差集SDIFF. set1 {a,b,c} set2{b,c,d},set3{c,d,e}?set1 - {set2&set3}={a}
以第一個集合為基準減去后面所有集合的并集. 最后返回第一個集合中剩下的數(shù)據(jù)
5.zset
有序集合
一般可用于排序列表等數(shù)據(jù)
比如朋友圈點贊人按時間排序 .? ?可記錄 userId, 時間戳