php redis實作定時任務的方法:1、修改設定檔redis.conf內容為「notify-keyspace-events "Ex"」;2、重啟redis服務;3、透過「object(Redis)#1(0){}string(22) "__keyevent@*__:expired"string(22) "__keyevent@0__:expire...」實作定時任務即可。
php redis 實作定時任務
修改設定檔redis.conf
; notify-keyspace-events ""
改成
notify-keyspace-events "Ex"
注意點:
#1.Linux 正常配置
2.在windows 下配置,`notify-keyspace-events ""` 預設沒有前面的註釋,可以選擇在這邊直接修改或把當前行註解掉,往上找把`; notify-keyspace-events "Ex"` 前面的註解開啟
3.重啟redis 服務
php demo.php
<?php $redis = new Redis(); $redis->connect('192.168.31.111', '6379'); $redis->setOption(Redis::OPT_READ_TIMEOUT, -1); $redis->setEx('k1', 3, 5); // 3 秒过期 //$redis_db = '0'; // 监听 0 号库 $redis_db = '*'; // 监听所有库 $redis->psubscribe([ '__keyevent@' . $redis_db . '__:expired' ], 'keyCallback'); // 回调方法 function keyCallback($redis, $pattern, $channel, $msg) { var_dump($redis); var_dump($pattern); var_dump($channel); var_dump($msg); }
#啟動測試
php demo.php
3 秒後結果
object(Redis)#1 (0) { } string(22) "__keyevent@*__:expired" string(22) "__keyevent@0__:expired" string(2) "k1"
redis-cli
setex foo 3 bar
以上是php redis如何實現定時任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!