当前位置: 首页 > article >正文

若依添加添加监听容器配置(删除键,键过期)

1、配置Redis的键触发事件

# 基础配置
bind 0.0.0.0                   
# 允许所有IP连接
protected-mode no              
# 关闭保护模式(生产环境建议结合密码使用)
port 6379                      
# 默认端口
daemonize no                   
# 非后台运行(Docker 中必须为 no)
timeout 0                      
# 连接超时时间(0为不限制)
tcp-keepalive 300              
# 保持TCP连接活性
# 持久化
appendonly yes                 
# 开启AOF持久化
appendfsync everysec           
# 每秒同步一次AOF文件
dir /data                      
# 数据存储路径(Docker 中需挂载此目录)# 内存管理
maxmemory 1GB                  
# 最大内存限制(根据需求调整)
maxmemory-policy volatile-lru  
# 内存满时删除最近最少使用的键# 安全
requirepass 12321sadsadsadSDDSADS     
# 设置密码(生产环境必选)# 键空间通知(关键配置!)
notify-keyspace-events Egx      
# 监听键过期事件(E: 键事件, x: 过期事件)# 日志
loglevel notice                
# 日志级别(notice/production环境推荐)
logfile ""                     
# 日志输出到标准输出(Docker 友好)

按照配置文件进行启动

docker run -d -p 6379:6379 --name redis-server  --restart=always -v /home/redis/redis.conf:/etc/redis/redis.conf  -v /home/redis/data:/data -d redis:7.0.2 redis-server /etc/redis/redis.conf

2、 总的配置需要添加

配置文件在framework模块下面的config文件夹中

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport
{@Beanpublic RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory) {RedisMessageListenerContainer container = new RedisMessageListenerContainer();container.setConnectionFactory(connectionFactory);return container;}
}

3、 键删除监听

@Component
@Slf4j
public class RedisKeyDeletionListener extends KeyExpirationEventMessageListener {@Value("${spring.redis.database}")private Integer database;public RedisKeyDeletionListener(RedisMessageListenerContainer listenerContainer) {super(listenerContainer);}@Overrideprotected void doRegister(RedisMessageListenerContainer listenerContainer) {// 监听指定数据库的键删除事件(__keyevent@*__:del)listenerContainer.addMessageListener(this,new PatternTopic("__keyevent@" + database + "__:del"));}@Overridepublic void onMessage(Message message, byte[] pattern) {String deletedKey = new String(message.getBody());log.info("Key deleted: {}", deletedKey);//此处写你的业务逻辑}}

4、 键过期监听

@Component
@Slf4j
public class RedisKeyBasicExpirationListener extends KeyExpirationEventMessageListener {// 当前服务连接的redis库序列号@Value("${spring.redis.database}")private Integer database;public RedisKeyBasicExpirationListener(RedisMessageListenerContainer listenerContainer) {super(listenerContainer);}// 指定监听数据库@Overrideprotected void doRegister(RedisMessageListenerContainer listenerContainer) {listenerContainer.addMessageListener(this, new PatternTopic("__keyevent@" + database + "__:expired"));}@Overridepublic void onMessage(Message message, byte[] pattern) {// 业务逻辑执行System.out.println("业务逻辑执行");killVlcThread();}}
http://www.lryc.cn/news/2404594.html

相关文章:

  • NeRF 技术深度解析:原理、局限与前沿应用探索(AI+3D 产品经理笔记 S2E04)
  • ROS2,工作空间中新建了一个python脚本,需要之后作为节点运行。告诉我步骤?
  • 【AI智能体】Spring AI MCP 从使用到操作实战详解
  • Vue:Ajax
  • 法律大语言模型(Legal LLM)技术架构
  • 理解 RAG_HYBRID_BM25_WEIGHT:打造更智能的混合检索增强生成系统
  • Hive终极性能优化指南:从原理到实战
  • 第六十二节:深度学习-加载 TensorFlow/PyTorch/Caffe 模型
  • MobaXterm配置跳转登录堡垒机
  • 零基础在实践中学习网络安全-皮卡丘靶场(第八期-Unsafe Filedownload模块)
  • 测试 FreeSWITCH 的 mod_loopback
  • 【C++快读快写】
  • 测试(面经 八股)
  • [面试精选] 0104. 二叉树的最大深度
  • 图上合成:用于大型语言模型持续预训练的知识合成数据生成
  • MYSQL(二) ---MySQL 8.4 新特性与变量变更
  • 数学复习笔记 27
  • 现代简约壁炉:藏在极简线条里的温暖魔法
  • 限流算法java实现
  • 机器学习×第二卷:概念下篇——她不再只是模仿,而是开始决定怎么靠近你
  • Linux 下关于 ioremap 系列接口
  • 常用函数库之 - std::function
  • php执行系统命令的四个常用函数
  • 力扣-17.电话号码的字母组合
  • 基于SpringBoot解决RabbitMQ消息丢失问题
  • 免费插件集-illustrator插件-Ai插件-随机填色
  • 使用 Unstructured 开源库快速入门指南
  • 白银6月想法
  • OpenCV 滑动条调整图像对比度和亮度
  • 船舶事故海上搜救VR情景演练全场景 “复刻”,沉浸式救援体验​