大佬教程收集整理的这篇文章主要介绍了Redis常见应用场景,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
redis常见应用场景。
如果还不清楚redis常用操作指令请访问 redis入门,或者访问 文档网站。
各种 商城购物车 (淘宝,京东。。)
设计思路
userId
。模拟过程
// 初始化购物车数据
hmset userId:1 prod:1 1 prod:2 3 prod:3 4
// 增加商品 prod:1 购买数量为2件时
hincrby userId:1 prod:1 1
// 减少商品 prod:2 数量为1件时
hincrby userId:1 prod:2 -2
// 删除商品 prod:1 时
hdel userId:1 prod:1
// 统计商品数
hlen userId:1
微信公众号订阅消息
设计思路
公众号发布消息时,向订阅本公众号的用户(mess:1)推送(将订阅消息id通过lpush放入用户的list中),模拟过程。
模拟过程
// 推送消息
lpush mess:1 999
lpush mess:1 1000
lpush mess:1 1010
// 查看消息,返回结果1010 1000 999
lrange mess:1 0 -1
限时抽奖活动:例如微信有个活动,活动id为2,如何基于redis设计实现。
设计思路
用户点击立即参与后,将用户id保存到活动id的集合中,利用Set集合的元素唯一性可查看参加用户、参加用户数量等等。
模拟过程
// 用户user:1 user:2 user:3参加抽奖活动act:888
sadd act:888 user:1 user:2 user:3
// 模拟一次性随机抽奖1名
srandmember act:888
// 模拟两次抽奖,两次抽奖不重复,使用spop命令,抽取中的用户会从set中移除
spop act:888
spop act:888
好友关系:共同关注,我关注的人也关注了他,我可能认识的人
注: 如果数据量大的情况下使用大数据分析
设计思路:两个集合取交集
模拟过程
// 三个用户关注的人
sadd user:1 zhangsan lisi wangwu
sadd user:2 zhangsan liliu wanger wangwu
sadd user:3 list wangwu liliu
// user:1和user:2共同关注的人,取交集,返回zhangsan wangwu
sinter user:1 user:2
各种榜单
例如百度新闻排名
设计思路
将新闻id作为member,点击次数设置为score,每点击一次score+1,当然,为了每日榜单,member在设计时可以加上后缀用于日期区分,例如news:20191216、news:20191217 。
模拟过程
// 增加热点新闻
zadd topic:20191216 100 new:1 200 new:2 150 new:3 500 new:4
// new:1点击了120次,点击数变为220
zincrby topic:20191216 120 new:1
// 查看今日排行前3名,返回 new:4 500 new:1 220 new:2 200
zrevrange topic:20191216 0 2 withscores
zadd topic:20191217 110 new:1 200 new:2 150 new:3 100 new:4
zadd topic:20191218 110 new:5 200 new:2 150 new:6 100 new:7
// 合并三日的数据
zunionstore topic:3day 3 topic:20191216 topic:20191217 topic:201912168
// 查看近三日排行榜前三名,返回new:4 600 new:2 600 new:1 330
zrevrange topic:3day 0 2 withscores
都读到这里了,来个 点赞、评论、关注、收藏 吧!
文章作者:IT王小二 首发地址:https://www.itwxe.com/posts/234ceb73/ 版权声明:文章内容遵循 署名-非商业性使用-禁止演绎 4.0 国际 进行许可,转载请在文章页面明显位置给出作者与原文链接。
以上是大佬教程为你收集整理的Redis常见应用场景全部内容,希望文章能够帮你解决Redis常见应用场景所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。