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