Redis 基础类型
1.string [key,value]
一般可用作缓存
字符串命令setnx 只有在 key 不存在时设置 key 的值。
分布式缓存
2.hash
一般可存储购物车类型的数据
3.list
一般可用于消息推送 ,比如推送最新的五条消息
key :userId
value: 消息id1,消息id2
(从左边)
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
(从右边)
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
4.set
一般可用于 抽奖, 朋友圈关注,点赞等
抽奖的功能: key=抽奖活动ID
参加抽奖 SADD==>value=userId
总抽奖人数 SMEMBERS key
随机抽奖 SRANDMEMBER KEY [count] 此方法集合长度不变,多次抽奖可出现重复用户
SPOP key [count] 此方法会移除并返回集合中的一个随机元素.
点赞 : SADD like:{消息ID} {userId}
取消点赞: SREM like:{消息ID} {userId}
检查用户是否点赞: SISMEMEBER like:{消息ID} {userId}
获取点赞的用户列表 SMEMBERS like:{消息ID}
获取点赞的用户数 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}
以第一个集合为基准减去后面所有集合的并集. 最后返回第一个集合中剩下的数据
5.zset
有序集合
一般可用于排序列表等数据
比如朋友圈点赞人按时间排序 . 可记录 userId, 时间戳