一、8大数据类型
1.String
2.Hash
3.List
4.Set
5.ZSet(SortedSet)
6.Bitmap
7.HyperLogLog(统计)
8.GEO(地图)
二、5种类型的应用场景
2.1 String
1.商品编号、订单号等
用INCR命令增加
2.文章阅读量、点赞数和在看数
用INCR命令增加
2.2 Hash
1.购物车早期版本
(1)新增商品:hset shop:uid001 334 1
(2)增加商品数量:hincrby shop:uid001 334 1
(3)商品总数: hlen shop:uid001
(4)全部选择:hgetall shop:uid001
2.3 List
1.微信订阅公众号
(1)比如订阅了两个公众号,他们发布了两篇文章,文章ID分别为001和009,可以通过执行以下命令,将文章推送
LPUSH likearticle:id 001 009
(2)查看自己订阅公众号的全部文章,类似分页,0-10指一次显示10条
LPUSH likearticle:id 0 10
2.4 Set
1.微信抽奖小程序
(1)用户点击立即参与按钮,则执行sadd key useId将用户ID添加至set中
(2)显示有多少人参与了抽奖:SCARD key
(3)抽奖:
- 随机抽奖2人,元素不删除:SRANDMEMBER key 2
- 分一二三等奖,获得三等奖的3人不能参与一二等奖的抽奖,所以从set将该元素删除:spop key 3
2.微信朋友圈点赞
(1)新增点赞:SADD pub:msgID 点赞用户1 点赞用户2
(2)取消点赞:SREM pub:msgID 点赞用户ID
(3)展现所有点赞用户:SMEMBERS pub:msgID
(4)点赞总数统计:SCARD pub:magID
(5)判断某个朋友是否点过赞:SISMEMBER pub:msgID 用户ID
3.微博共同关注的人
SINTER 我关注的人 Ta关注的人
4.QQ可能认识的人 - 差集运算A-B:SDIFF key [key …]
- 交集运算A∩B:SINTER key [key…]
- 并集运算AUB:SUNION key [key …]
SDIFF 我的好友 Ta的好友
2.5 Zset
- 从小到大:ZRANK key member
- 从大到小:ZREVRANK key member
1.根据商品销量对商品进行排序显示
(1)商品编号001的销量为2,编号002的销量为9:ZADD goods 2 001 9 002
(2)客户又买了两件001商品:ZINCRBY goods 2 001
(3)商品销量前10名:ZRABGE goods 0 10 WINTSCORES
2.热搜
(1)展示当日点击排行前10条:ZREVRANGE hot:20220719 0 9 WITHSCORES