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