欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

了解Redis常见应用场景

程序员文章站 2022-03-05 21:28:25
目录一、string 场景二、hash 场景三、list 场景四、set 场景五、zset 场景一、string 场景计数功能: 例如掘金文章点击数量,阅读数量。 集群环境下的sessio...

一、string 场景

计数功能:

  • 例如掘金文章点击数量,阅读数量。
  • 集群环境下的session共享。

二、hash 场景

各种 商城购物车 (淘宝,京东。。)

设计思路:

1.购物车绑定了 userid

2.商品id作为feild,商品数量作为value。

模拟过程:

// 初始化购物车数据

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

三、list 场景

微信公众号订阅消息

设计思路:

公众号发布消息时,向订阅本公众号的用户(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

四、set 场景

限时抽奖活动:例如微信有个活动,活动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

五、zset 场景

各种榜单:

例如百度新闻排名

设计思路:

将新闻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

以上就是了解redis常见应用场景的详细内容,更多关于redis常见应用场景的资料请关注其它相关文章!

相关标签: Redis 应用场景