首頁  >  文章  >  後端開發  >  php redis怎麼實作定時任務

php redis怎麼實作定時任務

藏色散人
藏色散人原創
2022-10-24 09:39:221383瀏覽

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怎麼實作定時任務

#本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。

php redis怎麼實作定時任務?

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影片教學

以上是php redis怎麼實作定時任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn