一、鍵空間通知Keyspace Notifications
1. redis 2.8.0版本之后才支持
2. 基於pub-sub
3. 消息類型:keysapce/keyevent
二、場景
1. redis緩存一般要設置過期時間,否則會越來越多,但是如果緩存還有用,可以使用過期提醒來重新加載緩存
2. 過期時需要做一些邏輯處理
三、redis配置文件
修改redis.conf,設置notify-keyspace-events Ex,默認為notify-keyspace-events "" ,修改后重啟redis
四、監聽命令
psubscribe __keyevent@0__:expired //監聽第0個數據庫
psubscribe __keyevent@*__:expired //監聽所有數據庫
五、關鍵代碼
1. 寫一個類繼承JedisPubSub
class RedisMsgPubSubListener extends JedisPubSub
2. 客戶端監聽
RedisMsgPubSubListener listener = new RedisMsgPubSubListener(); jedis.subscribe(listener, "__keyevent@0__:expired"); //subscribe是阻塞方法
參考:
https://blog.csdn.net/weixin_41497481/article/details/85322794
https://blog.csdn.net/zhu_tianwei/article/details/80169900
https://www.cnblogs.com/ruiati/p/6655949.html