Heim  >  Artikel  >  Datenbank  >  So implementieren Sie geplante Aufgaben in PHP Redis

So implementieren Sie geplante Aufgaben in PHP Redis

王林
王林nach vorne
2023-05-26 23:57:214289Durchsuche

So implementieren Sie geplante Aufgaben in PHP Redis: 1. Ändern Sie den Inhalt der Konfigurationsdatei redis.conf in „notify-keyspace-events „Ex““ 2. Starten Sie den Redis-Dienst neu 3. Übergeben Sie „object; Redis)#1( 0){}string(22) „__keyevent@*__:expired“string(22) „__keyevent@0__:expire…“ Implementieren Sie einfach geplante Aufgaben

php + Redis, um geplante Aufgaben zu implementieren Aufgaben

Änderung Ändern Sie die Konfigurationsdatei redis.conf

; notify-keyspace-events ""

Hinweise:

1. Normale Linux-Konfiguration

2. Konfigurieren Sie unter Windows, „notify-keyspace-events“ hat nicht das vorherige Standardmäßig können Sie den Kommentar hier ändern oder die aktuelle Zeile auskommentieren. Suchen Sie nach dem Kommentar und öffnen Sie ihn vor „Notify-Keyspace-Events“

3. Starten Sie den Redis-Dienst neu demo.php

notify-keyspace-events "Ex"

Test starten

php demo.php

Ergebnis nach 3 Sekunden

<?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);
}

redis-cli

object(Redis)#1 (0) {
}
string(22) "__keyevent@*__:expired"
string(22) "__keyevent@0__:expired"
string(2) "k1"

Das obige ist der detaillierte Inhalt vonSo implementieren Sie geplante Aufgaben in PHP Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen