一、使用發布訂閱測試
1.在 redis.conf 設定
notify-keyspace-events ex
# x代表過期
2.重啟redis
[root@localhost redis-5.0.5]# ls
00-releasenotes contributing deps makefile readme.md runtest runtest-moduleapi sentinel.conf tests
bugs copying install manifesto redis.conf runtest-cluster runtest-sentinel src utils
[root@localhost redis-5.0.5]# pwd
/root/redis-5.0.5
[root@localhost redis-5.0.5]# ps -ef|grep 6379
root 1652 1 0 22:43 ? 00:00:02 /root/redis-5.0.5/src/redis-server 0.0.0.0:6379
root 3732 3520 0 23:22 pts/3 00:00:00 grep --color=auto 6379
[root@localhost redis-5.0.5]# /root/redis-5.0.5/src/redis-server /root/redis-5.0.5/redis.conf
二.使用redis-cli的客戶端測試1.開啟 redis-cli 等待過期key的通知(訂閱)
[root@localhost redis]# /root/redis-5.0.5/src/redis-cli
127.0.0.1:6379> psubscribe __keyevent@0__:expired
reading messages... (press ctrl-c to quit)
1) "psubscribe"
2) "__keyevent@0__:expired"
3) (integer) 1
說明:
psubscribe __keyevent@0__:expired
# psubscribe 命令訂閱乙個或多個符合給定模式的頻道,0代表資料庫0
2.開啟另外乙個redis-cli客戶端
127.0.0.1:6379> setex test 10 123
ok
3.10秒過期後在 訂閱中能看到過期的 key 資訊
三.php **測試實現
1.建立檔案(訂閱) vim listen.php
<?php
//這一句是說長連線不超時,如果沒有的話,這個檔案會在執行一段時間後自動停止,一定不能少
ini_set('default_socket_timeout', -1);
$redis = new redis();
$redis->connect("127.0.0.1", 6379);
$redis->psubscribe(array('__keyevent@0__:expired'), 'keycallback');
function keycallback($redis, $pattern, $channel, $message)
2.建立檔案 vim setex.php
<?php
$redis = new redis();
$redis->connect("127.0.0.1", 6379);
$redis->setex("test", 10, 123);
3.使用php命令式執行
#啟動訂閱
[root@localhost redis]# php listen.php
#啟動redis寫入資料
[root@localhost redis]# php setex.php
redis過期key監聽
修改配置檔案 redis.conf notify keyspace events ex k 鍵空間通知,以 keyspace 為字首 e 鍵事件通知,以 keysevent 為字首 g del expipre rename 等型別無關的通用命令的通知,string命令 l list命令 s set命...
redis監聽key過期
檢視redis版本 redis server v redis server version 要使redis可以監聽到key過期,需新增配置,實現原理 在redis2.8之後的版本中,當我們將對使用redis快取起來並設定快取失效時間的時候,會觸發redis的鍵事件通知,客戶端訂閱這個通知事件,服務端...
監聽Redis快取key過期
有些業務需要延遲一定時間後執行,比如訂單提交後15分鐘未支付就自動關閉,這裡只是舉個例子。我們可以通過監聽redis的key過期事件來實現這個功能。新增redis依賴 org.springframework.boot spring boot starter data redis 配置訊息監聽容器,把...