首页 > 数据库 >redis过期监听

redis过期监听

时间:2024-08-29 16:26:30浏览次数:5  
标签:过期 redis 监听 keyspace connection notify events

  redis 是一个高性能的 KV 数据库,除了用作缓存以外,其实还提供了过期监听的功能在 redis.conf 中,配置 notify-keyspace-events Ex 即可开启此功能。
然后在代码中继承 KeyspaceEventMessageListener,实现 onMessage 就可以监听过期的数据量

public abstract class KeyspaceEventMessageListener implements MessageListener, InitializingBean, DisposableBean {
		private static final Topic TOPIC_ALL_KEYEVENTS = new PatternTopic("__keyevent@*");
//...省略部分代码
		public void init() {
				if (StringUtils.hasText(keyspaceNotificationsConfigParameter)) {
					RedisConnection connection = listenerContainer.getConnectionFactory().getConnection();
					try {
						Properties config = connection.getConfig("notify-keyspace-events");
						if (!StringUtils.hasText(config.getProperty("notify-keyspace-events"))) {
						  connection.setConfig("notify-keyspace-events", keyspaceNotificationsConfigParameter);
						}
					} finally {
					  connection.close();
					}
				}
					doRegister(listenerContainer);
		}
			protected void doRegister(RedisMessageListenerContainer container) {
			listenerContainer.addMessageListener(this, TOPIC_ALL_KEYEVENTS);
	}
		//...省略部分代码
		@Override
		public void afterPropertiesSet() throws Exception {
			init();
		}
}

标签:过期,redis,监听,keyspace,connection,notify,events
From: https://www.cnblogs.com/sitting-on-the-clouds/p/18386952

相关文章

  • 你一定想知道的Redis数据库详解
    目录一、Redis介绍1.1定义1.2为什么要有Redis1.3Redis和Mysql的对比1.4Redis的一些常见命令二、Redis常见的数据结构一、字符串(String)二、哈希(Hash)三、列表(List)四、集合(Set)五、有序集合(SortedSet)三、Redis的应用场景四、实验练习4.1redis部署实验环境:实验......
  • 缓存解决方案。Redis 和 Amazon ElastiCache 比较
        欢迎来到雲闪世界。Redis和AmazonElastiCache等缓存解决方案是通过将频繁访问的数据存储在内存中来提高应用程序性能的热门选择。让我们从实施简单性、性能、成本和维护方面对它们进行比较。实施简单设置Redis需要在基础设施或云实例上安装和配置Redis服......
  • Nginx负载均衡中的缓存过期配置:策略与实现
    在Nginx负载均衡的高级应用中,合理配置缓存过期策略对于提升网站性能和保证内容的新鲜度至关重要。缓存过期意味着存储在代理缓存中的响应在一定时间后将被视为过时,并在下一次请求时从原始服务器重新获取。本文将详细介绍如何在Nginx中配置缓存过期,包括缓存机制的理解、过期......
  • IntersectionObserver实现监听dom进入浏览器视口
    letimg=document.getElementsByTagName("img");constobserver=newIntersectionObserver(entries=>{//entries是被观察的元素集合for(leti=0,len=entries.length;i<len;i++){letentries=entries[i];//通过这个属性判断是否在视口......
  • 检测域账号是否禁用、密码是否永不过期
    usingSystem;usingSystem.DirectoryServices.AccountManagement;classProgram{staticvoidMain(string[]args){//从控制台输入用户名Console.Write("请输入要查询的用户名:");stringuserName=Console.ReadLine();//......
  • Windows版本下Redis安装与使用
    一、windows环境安装redis1、下载Redis压缩包2、解压到文件夹3、启动Redis服务4、打开Redis客户端进行连接5、使用一些基础操作来测试6、Redis常用的服务指令7、java项目集成redis8、常见报错和相关指令9、cmd指令查看关闭端口进程一、windows环境安装redis1、下载Redis......
  • Redis几种常用数据类型的数据结构
    以下是redis-7版本以下适用stringint编码:当字符串长度小于等于12字节并且字符串可以表示为整数时,Redis会使用int编码。这样可以节省内存,并且在执行一些命令时可以直接进行数值计算。embstr编码:当字符串长度小于等于39字节时,Redis会使用embstr编码。这种编码方式会将......
  • Redis组件介绍(一)
    写在前面今天我们来学习一下Redis。Redis是一个高性能的开源内存数据存储系统,支持多种数据结构,如字符串、列表、集合、有序集合和哈希表。#NoSQL概述随着大数据的兴起,数据量的暴增,数据类型的丰富,传统的关系数据库在应付动态网站,特别是超大规模和高并发的纯动态网站时已经......
  • 【阅己书城】docker部署MySQL及Redis
    一、MySQL1拉取mysql镜像dockerpullmysql:5.72启动mysql容器--name指定容器名字-v目录挂载-p指定端口映射-e设置mysql参数-d后台运行dockerrun--namemysql-v/mydata/mysql/data:/var/lib/mysql-v/mydata/mysql/conf:/etc/mysql-v/mydata/mysql/log:/var/......
  • redis设置用户名密码
    今天学习redis的相关配置知识,起因来自于华为云服务器未设置用户名密码导致遭受到攻击,所以我要设置一个用户名密码,但是设置命令后出现这样的报错:Jobforredis.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusredis.service"and"j......