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

php redis如何實現定時任務

王林
發布: 2023-05-26 23:57:21
轉載
4333 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板