Redis基础_2-⑥ 数据类型实践案例

数据类型实践案例1

业务场景
在这里插入图片描述
解决方案:

1、设计计数器,记录调用次数,用于控制业务执行次数。以用户id作为key,使用次数作为value
2、在调用前获取次数,判断是否超过限定次数
	不超过次数的情况下,每次调用技术+1
	业务调用失败,计数-1
3、为计数器设置生命周期为指定周期,例如1秒/分钟,自动清空周期内的使用次数

在这里插入图片描述
在这里插入图片描述
解决方案改良

1、取消最大值的判定,利用incr操作超过最大值抛出异常的形式替代每次判断是否大于最大值
2、判断是否为nil
	如果是,设置为MAX-次数
	如果不是,计数+1
	业务调用失败,计数-1
3、遇到异常即+操作超过上限,视为使用达到上限

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Tips16:

redis应用于限时按次结算的服务控制

数据类型实践案例2

业务场景
使用微信的过程中,当微信接受消息后,会默认将最近接收到的消息置顶,当多个好友及关注的订阅号同时发送消息时,该排序会不停的进行交替。同时还可以将重要的会话设置为置顶,一但用户离线后,在此打开微信时,消息该按照什么样的顺序显示?
业务分析:
在这里插入图片描述
解决方案:

1、依赖list的数据具有顺序的特征对消息进行管理,将list结构作为栈使用
2、对置顶与普通绘画分别创建独立的list分别管理
3、当某个list中接收到用户消息后,将消息发送方的id从list的一侧加入list	(此处可设定为左侧)
4、多个相同id发出的消息反复入栈会出现问题,在入栈之前无论是否具有当前id对应的消息,先删除对应的id
5、推送消息时先推送置顶会话list,再推送普通会话list,推送完成的list清除所有数据
**6、消息的数量,也就是微信用户对话数量采用计数器的思想另行记录,伴随list操作同步更新

在这里插入图片描述
在这里插入图片描述
Tips17:

redis应用于基于时间顺序的数据操作,而不关注具体时间
(关注的是顺序,也可以理解为任务队列的到达顺序)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值