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

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

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();}}

相关文章:

  • 什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
  • [BJDCTF2020]Easy MD5 1
  • Excel 模拟分析之单变量求解简单应用
  • redhat系统中删除多余的硬盘
  • 深入解析:为什么 Redis 比 MySQL 快
  • Python----目标检测(YOLO简介)
  • 5G 核心网中 NF 选择机制:基于优先级、权重与负载分担的策略解析
  • 全球知名具身智能/AI机器人实验室介绍之AI FACTORY基于慕尼黑工业大学
  • day 46
  • Rust 开发环境搭建
  • 解决cocos 2dx/creator2.4在ios18下openURL无法调用的问题
  • 配置git命令缩写
  • Git 常用命令大全
  • 行业案例 | ASOS 借助 Azure AI Foundry(国际版)为年轻时尚爱好者打造惊喜体验
  • vue-video-player视频保活成功确无法推送问题
  • JuiceFS v1.3-Beta2:集成 Apache Ranger,实现更精细化的权限控制
  • React 基础入门笔记
  • Kerberos面试内容整理-开源 Kerberos 实现(MIT Kerberos、Heimdal 等)
  • 20250606-C#知识:泛型与非泛型容器的基本操作
  • 32单片机——基本定时器
  • 乐陵seo外包信德/黄山seo
  • 佛山网站设计是/网络营销的八大能力
  • 软件园二期做网站的公司有哪些/中国国家培训网官网入口
  • 本地电脑做网站服务器/百度快照什么意思
  • iis7如何部署网站/数字营销
  • 网站设计软件开发/广告联盟自动挂机赚钱