5. Redis数据类型综合实践案例

Resid数据类型综合实践案例

业务场景 1.计数器
在这里插入图片描述
解决方案

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

在这里插入图片描述
Tips 16:

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

业务场景(微信会话)
在这里插入图片描述
业务分析
在这里插入图片描述
解决方案

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

在这里插入图片描述

Resid数据类型综合实践案例

业务场景 1.计数器
在这里插入图片描述
解决方案

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

在这里插入图片描述
Tips 16:

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

业务场景(微信会话)
在这里插入图片描述
业务分析
在这里插入图片描述
解决方案

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_25905159/article/details/114786318