1.修改redis配置
过期事件通过Redis的订阅与发布功能(pub/sub)来进行分发。
而对超时的监听呢,并不需要自己发布,只有修改配置文件redis.conf中的:notify-keyspace-events Ex,默认为notify-keyspace-events “”
2.创建监听器
public class KeyExpiredListener extends JedisPubSub {
/**
* 订阅事件消息
*/
@Override
public void onPSubscribe(String pattern, int subscribedChannels) {
System.out.println("onPSubscribe "
+ pattern + " " + subscribedChannels);
}
/**
* key失效消息
* 如果起始帧已发送,发送续传帧
*/
@Override
public void onPMessage(String pattern, String channel, String message) {
// System.out.println("onPMessage pattern "
// + pattern + " " + channel + " " + message);
}
}
3.初始化创建消息订阅
public class Subscriber {
public static void main(String[] args) {
Jedis jedis = RedisUtil.getJedis();
jedis.psubscribe(new KeyExpiredListener(), "__key*__:*");
jedis.close();
}
}
4.设置key测试
public class TestJedis {
public static void main(String[] args) {
Jedis jedis = RedisUtil.getJedis();
jedis.set("upgrate:expire", "新浪微博:小叶子一点也不逗");
jedis.expire("upgrate:expire", 3);
jedis.expire("upgrate:expire", 10);
jedis.close();
}
}
本文介绍了如何实现Redis中Key的过期监听。主要步骤包括:修改redis配置文件,开启过期事件通知;创建监听器;初始化并创建消息订阅;通过设置Key测试监听效果。利用Redis的订阅/发布功能分发过期事件。
21万+

被折叠的 条评论
为什么被折叠?



