首頁 >資料庫 >Redis >php redis如何實現定時任務

php redis如何實現定時任務

王林
王林轉載
2023-05-26 23:57:214331瀏覽

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(&#39;192.168.31.111&#39;, &#39;6379&#39;);
$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
$redis->setEx(&#39;k1&#39;, 3, 5); // 3 秒过期
//$redis_db = &#39;0&#39;; // 监听 0 号库
$redis_db = &#39;*&#39;; // 监听所有库
$redis->psubscribe([
    &#39;__keyevent@&#39; . $redis_db . &#39;__:expired&#39;
], &#39;keyCallback&#39;);
// 回调方法
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中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除