Redis中的自动过期机制
实现需求:处理订单过期自动取消,比如下单30分钟未支付自动更改订单状态
实现方案1:
- 使用Redis Key自动过期出发事件通知
- 使用定时任务30分钟后检查
- 按照每分钟轮训检查
使用Redis Key自动过期机制
当我们的key失效时,可以执行我们的客户端回调监听的方法。
需要在Redis中配置:
notify-keyspace-events “Ex”
SpringBoot整合key失效监听
@Configuration
public class RedisListenerConfig {
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
/*** 待支付*/
private static final Integer ORDER_STAYPAY = 0;
/*** 失效*/
private static final Integer ORDER_INVALID = 2;
@Autowired
private OrderMapper orderMapper;/*** Redis失效事件 key** @param message* @param pattern*/
@Override
public void onMessage(Message message, byte[] pattern) {String expiraKey = message.toString();// 根据key查询 value 如果还还是为待支付状态 将订单改为已经超时~~OrderEntity orderNumber = orderMapper.getOrderNumber(expiraKey);System.out.println(expiraKey);if (orderNumber == null) {return;}if (orderNumber.getOrderStatus().equals(ORDER_STAYPAY)) {// 将订单状态改为已经失效orderMapper.updateOrderStatus(expiraKey, ORDER_INVALID);}
}
}
Redis中的自动过期机制相关推荐
- Redis自动过期机制之key的过期监听(7)
Redis中的自动过期机制 前言 1.使用Redis Key自动过期机制 2.Springboot整合key过期监听 2.1. 创建表 order_number 2.2核心代码 2.2.1 核心代码 ...
- Redis中key的过期时间
Redis中key的过期时间 背景 实际项目开发中,我们经常会用到redis进行缓存存储,那么redist中key设置与不设置缓存时间,会给我们日常开发中带来哪些影响呢? 场景1:设置了key但是没有 ...
- 在Redis中设置了过期时间的Key,需要注意哪些问题?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:千山qianshan juejin.im/post/5d6b ...
- 在 Redis 中设置了过期时间的 Key,需要注意哪些问题?
熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...
- 【干货】在Redis中设置了过期时间的Key怎么办?
熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...
- Redis中两种持久化机制RDB和AOF
redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失.幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Ap ...
- Redis 中两种持久化机制详解
Redis 持久化机制(快照.AOF) 快照 (Snapshot) 1. 客户端方式之 BGSAVE(多线程执行) 2. 客户端方式之 SAVE(单线程执行) 3. 服务器配置方式之 配置快照触发条件 ...
- 在Redis中设置了过期时间的Key注意事项
作者:千山qianshan juejin.im/post/5d6bda096fb9a06acc009dc8 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的 ...
- 设置过期时间_在Redis中设置了过期时间的Key,需要注意哪些问题?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:千山qianshan juejin.im/post/5d6b ...
最新文章
- Python 格式化输出和while循环的两个小练习
- md5碰撞Java_java现在MD5加密不安全了吗?
- javascript精要(1)-script元素
- Linux系统下UDP发送和接收广播消息小例子
- mysql date time year_YEAR、DATE、TIME、DATETIME和TIMESTAMP详细介绍[MySQL数据类型]
- 计算机专业性特有的道德要求,什么是通信科学技术人员职业道德的双重性?
- 解决/usr/local/lib/libglog.so.0: error adding symbols: DSO missing from command line
- HTML中点击div旋转,html – 180度旋转的div只能从一侧点击
- Django基础之中间件
- ACE admin 后台管理框架
- CGLIB代理使用与原理详解
- 美团外卖离线数仓建设实践
- 利用外观模式Java投资理财_Java设计模式之外观模式和装饰器模式的设计(精选)...
- 101个CV模型集体开源,魔搭社区视觉AI深度解析
- UVA, 563 Crimewave
- LeetCode——反转链表
- java蓝牙程序怎么调试_蓝牙BLE调试助手软件源码
- 股市的起源发展和意义
- html5 水流旋涡,HTML5 金色漩涡动画
- 牛牛和DRB迷宫Ⅰ【动态规划】
热门文章
- python中的帮助_在Python中使用help帮助
- tkinter 笔记 :主体框架窗口内容
- 论文笔记:[ICLR 2020] Tips for prospective and early-stage PhD students
- R语言实战应用精讲50篇(三十一)-R语言入门系列-tidyverse数据分析流程
- 机器学习第8天:IPyhon与Jupyter notebook
- Python编程基础:第三十七节 石头剪刀布游戏Rock, Paper, Scissors Game
- 【机器学习PAI实践三】雾霾成因分析
- 35+ Top Apache Tomcat Interview Questions And Answers【转】
- 史上最全的MySQL高性能优化实战总结!
- Flask部署和分发