跟我一起学Redis之五种基本类型及其应用场景举例(干了6个小时) (3)

用于数据传输桥梁:经常会遇见采集一些仪器相关数据的需求,但通常方式都会让仪器生成数据文件,供其它程序进行解析,也有用Redis中List作为桥梁传输数据的,减少自己生成文件的过程,通过用List的方式,一边塞进去,一边定时取出,然后发送到远程。同样的道理,也可以用于一些消息的推送,比如关注了一个公众号,要发送给订阅者,首先公众号发表文章到List,有一个后台任务程序定时进行取出发给订阅者,这里就是拿公众号举一个例,并非公众号是这么实现。

img

模拟消息推送

img

专门有一个后台任务程序从关注者消息列表中取出消息,依次发给每个关注者。

list常规操作(获取,更新,插入):

img

set

set命令一般以s开头,里面元素无序且不重复,着重分享以下命令:

sadd key member [member ...]:在集合中增加一个或多个元素;

srem key member [member ...]:从集合中删除一个或多个元素;

smembers key:获取集合中的所欲元素;

scard key:获取集合中的元素个数;

sismember key member:判断指定member是否在集合中;

srandmember key [count]:从集合中获取count个元素,不从集合中删除;

spop key [count]:从集合中获取count个元素,从集合中删除

sinter key [key1 ...]:指定多个集合进行交集运算;

sinterstore dest key [key1 ...]:指定多个集合进行交集运算,存入dest集合;

sunion key [key1 ...]:指定多个集合进行并集运算;

sunionstore dest key [key1 ...]:指定多个集合进行并集运算,存入dest集合;

sdiff key [key1 ...]:指定多个集合进行差集运算;

sdiffstore dest key [key1 ...]:指定多个集合进行差集运算,并存入dest集合;

结合应用场景演练*↓↓↓*

抽奖逻辑:抽奖小伙伴们不陌生了吧,不管是公司年会抽奖,还是公众号参与抽奖,应该几乎不用亲手抓阄了吧。都是通过程序,把人员都放在一起,然后随机抽取,set很符合这种应用场景,如下:

img

以上是随便找一个抽奖小程序创建的抽奖,开始命令演练:

img

文章点赞:发表文章之后,可以进行点赞、取消点赞等相关操作;

img

共同好友统计

img

zset

zset的命令一般以z开头,里面元素是有序不可重复的。和Set用法基本一样,只是每个元素中多了一个分值,用于元素排序。

zadd key score member [(score member)...]:往有序集合中添加带分值的元素;

zrem key member [member...]:从有序集合中删除成员;

zscore key member:返回集合中指定成员的分值;

zcard key:统计集合中元素个数;

zrange key start stop [withscores]:返回指定范围的元素,withscores代表返回的元素包含对应的分值。

zreverange key start stop [withscores]:返回指定范围的倒序元素,withscores代表返回的元素包含对应的分值。

同set一样也可以进行交集、并集、差集的集合运算。

综合应用场景*↓↓↓*

用于排名:比如考试成绩的排名,新闻热度排行榜,直播打赏排名等。

img

新闻热榜:

img

img

总结

以上简单结合实例应用场景将五种基础类型的常用命令进行分享,还有大量的命令需要小伙伴们结合实际需求进行应用。文中实例大部分是周围项目中的使用场景,少部分是参考学习资料,总体来说,文中实例应用只作为思路参考,小伙伴可根据业务需求进行应用,对于命令的使用还需要小伙伴们多多练习实践。下一篇聊聊三种特殊类型。

一个被程序搞丑的帅小伙,关注"Code综艺圈",识别关注跟我一起学~~~

跟我一起学Redis之五种基本类型及其应用场景举例(干了6个小时)

撸文不易,莫要白瞟,三连走起~~~~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfywj.html