0
点赞
收藏
分享

微信扫一扫

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)


按次控制结算

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_java

  • 现在数据类型五种基本的已经学完了,现在开始应用一个简单的业务场景。
  • 要思考如何进行一个综合应用。
  • 那么进行一个分析,分析解决方案如何进行操作。

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_解决方案_02

  • 难点是:计数且有生命周期。

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_redis_03

  • setex 是可以设置时长
  • setex 415 60 1;

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_置顶_04


Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_解决方案_05

  • 就是反复的走这个过程,如果是一个新用户,就进行设1增加。进来415发现不存在,就开始设置时间长度,并且开始进行增加。
  • 进行方案改进:能否最后一次才进行判定次数,而不是每次判定。

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_java_06

  • 直接设置一个特殊值。

  • get发现有值,那么直接进行增加,增加到最后的时候,超范围就会溢出,然后发现这个异常就会告诉用户发现有问题了。
  • 用异常的形式就可以免去每次都判定的一个麻烦了。
  • 然后等待一分钟后,就又可以重新来了。

消息会话顺序管理

  • 首先进行模型管理。

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_置顶_07

  • 对于用户100来说,如果300发消息给100,先检查是不是在set的置顶中,然后如果不在,那么就进入到list普通里面,然后400发消息给100,检查发现在置顶中,那么进入到list置顶中,然后200发消息,这个时候200进入到list普通中,200再发一次消息,300再发消息,顺序就成如下的了。有(先减去200,再加200,删去300,再加上300.,最后是300发的,所以300是最上面的!)

  • set是没有顺序的,那么就不需要这个了。
  • sort_set也不行,因为发的次数多,不一定是发的时间最前面。

过程模拟

  • 进行 200 300 400 200 200 300的过程模拟。
  • 所以总结:可以用来做一个时间到达顺序的排列,但是不关注时间本身!

解决方案列表汇总:应用场景

Redis学习7:按次结算的服务控制、微信会话顺序管理(应用场景总结)_redis_08


举报

相关推荐

0 条评论