二、Redis经典五种数据类型介绍及落地运用
一、String(字符类型)
1、常见命令
2、应用场景
阅读数:只要点击了地址,直接可以使用incr key 命令增加一个数字1,完成记录数字。
二、Hash(散列类型)
1、常见命令
2、应用场景
用于存储对象
三、List(列表类型)
1、常见命令
2、应用场景
(1)微信公众号订阅的消息。例:
我去订阅公众号: lpush likearticle:userId 11 22
查看我订阅的公众号,一次显示10条:lrange likearticle:userId 0 9
(2)商品评论列表,用户针对某一商品发布评论,一个商品会被不同的用户进行评论,保存商品评论时,要按时间顺序排序。
四、Set(集合类型)
1、常见命令
2、应用场景
(1)微信抽奖小程序
步骤1 用户ID,立即参与按钮 | sadd key 用户ID |
步骤2 显示已经有多少人参与了,上图23208人参加 | SCARD key |
步骤3 抽奖(从set中任意选取N个中奖人) | SRANDMEMBER key 2 随机抽奖2个人,元素不删除 SPOP key 3 随机抽奖3个人,元素会删除 |
(2)微信朋友圈点赞
步骤1 新增点赞 | sadd pub:msgID 点赞用户ID1 点赞用户ID2 |
步骤2 取消点赞 | srem pub:msgID 点赞用户ID |
步骤3 展现所有点赞过的用户 | SMEMBERS pub:msgID |
步骤4 点赞用户数统计,就是常见的点赞红色数字 | scard pub:msgID |
步骤5 判断某个朋友是否对楼主点赞过 | SISMEMBER pub:msgID 用户ID |
五、SortedSet(有序集合类型,简称zset)
1、常见命令
2、应用场景
(1)根据商品销售对商品进行排序显示
思路:定义商品销售排行榜(sorted set集合),key为goods:sellsort,分数为商品销售数量。
步骤1 商品编号1001的销量是9,商品编号1002的销量是15 | zadd goods:sellsort 9 1001 15 1002 |
步骤2 有一个客户又买了2件商品1001,商品编号1001销量加2 | zincrby goods:sellsort 2 1001 |
步骤3 求商品销量前10名 | ZRANGE goods:sellsort 0 10 withscores |
(2)抖音热搜
步骤1 点击视频 | ZINCRBY hotvcr:20200919 1 八佰 ZINCRBY hotvcr:20200919 15 八佰 2 花木兰 |
步骤2 展示当日排行前10条 | ZREVRANGE hotvcr:20200919 0 9 withscores |