使用redisson监听key过期,需要两步操作:
1、开启redis服务端的事件广播功能。
如果是自建的,则直接在redis.conf中增加或修改(修改后重启redis):
notify-keyspace-events "KEx"
具体可选的选项如下(所以,上面的KEx可以看下面的含义):
K Keyspace events, published with __keyspace@<db>__ prefix. E Keyevent events, published with __keyevent@<db>__ prefix. g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... $ String commands l List commands s Set commands h Hash commands z Sorted set commands x Expired events (events generated every time a key expires) e Evicted events (events generated when a key is evicted for maxmemory) A Alias for g$lshzxe, so that the "AKE" string means all the events.
如果是阿里云redis,则可以到阿里redis的管理界面操作。
2、项目中添加监听事件(监听redis事件的行为,各个组件,如jedis等都有自己的方式,自己百度,这里是记录redisson的方式):
public static void main(String[] args) { int db = 2; RedissonClient redissonClient = createClient(db); RTopic topic = redissonClient.getTopic("__keyevent@" + db + "__:expired", new StringCodec()); topic.addListener(String.class, new MessageListener() { @Override public void onMessage(CharSequence channel, Object msg) { System.out.println("收取到过期的事件:" + channel + "; Thread: " + Thread.currentThread().toString()); System.out.println("过期的key="+msg); } }); String key = "test_expire_listen"; Object value = "val"; RBucket bucket = redissonClient.getBucket(key); bucket.set(JSON.toJSONString(value), 5, TimeUnit.SECONDS); bucket.expire(6,TimeUnit.SECONDS); } private static RedissonClient createClient(int db) { Config config = new Config(); config.setCodec(new StringCodec()); config.useSingleServer() .setAddress("redis://127.0.0.1:6379") .setPassword("******") .setConnectionPoolSize(500) .setIdleConnectionTimeout(10000) .setTimeout(3000) .setConnectTimeout(30000) .setRetryAttempts(3) .setRetryInterval(1000) .setDnsMonitoringInterval(-1) .setPingConnectionInterval(10000) .setDatabase(db); return Redisson.create(config); }
相关推荐
在使用redis集群时,发现过期key始终监听不到。网上也没有现成的解决方案。于是想,既然不能监听集群,那我可以建立多个redis连接,分别对每个redis的key过期进行监听。以上做法可能不尽人意,目前也没找到好的解决...
监听redis的key的变化
1.springboot集成redis,并监听redis过期key做相应的业务处理
实现redis的key值过期监听事件,且集成jedis实现redis的简单调用,内有功能备注
本文实例讲述了Android开发实现Fragment监听返回键事件功能的方法。分享给大家供大家参考,具体如下: 前面的文章Android开发教程之Fragment定义、创建与使用方法详细讲述了Fragment的基本概念与用法。这里再来分析...
jquery监听鼠标滚轮事件+js监听滚轮事件, 两个例子,都可以通过! 目前已测试 ie8 火狐,360
jquery监听DIV的事件,可监听DIV的变化的事件,直接引用即可使用
JS 监听 关闭浏览器事件
jquery 监听 键盘 事件
安卓广播监听按键事件和屏幕熄屏亮屏监听,BroadcastReceiver使用
主要介绍了spring boot+redis 监听过期Key,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo
webview 监听页面显示事件,很好用
主要介绍了android监听返回按钮事件的方法,涉及Android事件监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
添加事件的js方法也很多,有直接加到页面结构上的,有使用一些js事件监听的方法,由于各个浏览器对事件冒泡事件监听的机制不同
Java监听键盘鼠标全局事件[定义].pdf
Electron中通过globalShortcut实现监听键盘事件进而实现快捷键功能示例代码;Electron中通过globalShortcut实现监听键盘事件进而实现快捷键功能示例代码
简单好用的全局监听器,没有用任何的第三方库,代码简单明了
主要给大家介绍了Android在Fragment中实现监听触摸事件的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。