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

简介: 现在数据类型五种基本的已经学完了,现在开始应用一个简单的业务场景。

按次控制结算


ea1a14292a10d64c971370a952b04ab2_366a8c8b75f1444997f4b6c8da946bfb.png

现在数据类型五种基本的已经学完了,现在开始应用一个简单的业务场景。


要思考如何进行一个综合应用。


那么进行一个分析,分析解决方案如何进行操作。


dcf1e39c5d78f05b1cb4b108c98a48be_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_16,color_FFFFFF,t_70,g_se,x_16.png

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

0761b10edd52308455fe059f0747f081_980689aa3a63418fac5fdf634d3f7c23.png

setex 是可以设置时长

setex 415 60 1;

ab337a5f4c1185721b2092a7f2f4f93e_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_13,color_FFFFFF,t_70,g_se,x_16.png

0bfe476838ddc265278ab854f71eac93_67b7c7dbe51c4b62884629857145cf4f.png

就是反复的走这个过程,如果是一个新用户,就进行设1增加。进来415发现不存在,就开始设置时间长度,并且开始进行增加。

进行方案改进:能否最后一次才进行判定次数,而不是每次判定。

823fae8284a6ceb00acb389a565ab859_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_19,color_FFFFFF,t_70,g_se,x_16.png


直接设置一个特殊值。

8d70e6825fc20f18d71ee18ff77fce99_cd5d9742d60049f5ac84219b19858d42.png

get发现有值,那么直接进行增加,增加到最后的时候,超范围就会溢出,然后发现这个异常就会告诉用户发现有问题了。

用异常的形式就可以免去每次都判定的一个麻烦了。

然后等待一分钟后,就又可以重新来了。

消息会话顺序管理

首先进行模型管理。

3a862dd1f1f9a2e812447680a8c935f1_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

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

2b591f3723299bbb86f382e3c1d1a0a5_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

a7d8f047ca5e1f9718a60900cc433139_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

7e12a087a5632129cfa1adbdf139065f_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png

set是没有顺序的,那么就不需要这个了。

sort_set也不行,因为发的次数多,不一定是发的时间最前面。

过程模拟

进行 200 300 400 200 200 300的过程模拟。

230f8a99c16a93d9f511bcbd6190511c_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_15,color_FFFFFF,t_70,g_se,x_16.png

所以总结:可以用来做一个时间到达顺序的排列,但是不关注时间本身!

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

895928b34250c7825c7a7df399d3f603_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

相关文章
|
10月前
|
小程序 Java 关系型数据库
基于微信小程序的智慧养老服务系统
本系统基于Java、MySQL和Spring Boot技术,构建高效、安全的养老院管理系统,提升信息处理速度与管理规范性,实现数据自动化备份与网络化管理,助力养老机构信息化升级。
|
10月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
969 6
微信封号脚本插件,全自动批量投诉工具, vx隔空抓包封号思路【仅供学习参考用途】
这是一款针对微信投诉自动化处理的工具插件,通过模拟点击操作实现批量投诉功能。相比手动投诉,该插件效率更高、成功率更有保障。
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
2175 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1891 3
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
331 3
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
604 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
1604 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
存储 消息中间件 缓存
深入探析Redis常见数据类型及应用场景
深入探析Redis常见数据类型及应用场景
678 2
|
小程序 JavaScript API
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)