Rumah >pangkalan data >Redis >Bagaimana untuk melaksanakan tugas berjadual dalam php redis

Bagaimana untuk melaksanakan tugas berjadual dalam php redis

王林
王林ke hadapan
2023-05-26 23:57:214330semak imbas

Cara melaksanakan tugas berjadual dalam PHP redis: 1. Ubah suai kandungan fail konfigurasi redis.conf kepada "notify-keyspace-events "Ex"" 2. Mulakan semula redis perkhidmatan; 3. Lulus "object(Redis)#1(0){}string(22) "__keyevent@*__:expired"string(22) "__keyevent@0__:expire..." Hanya laksanakan tugasan yang dijadualkan.

php + redis melaksanakan tugas berjadual

Ubah suai fail konfigurasi redis.conf

; notify-keyspace-events ""

kepada

notify-keyspace-events "Ex"

Nota:

1. Konfigurasi normal Linux

2. Konfigurasikan di bawah tingkap, `notify-keyspace-events ""` tidak mempunyai ulasan sebelumnya secara lalai baris semasa, pergi ke Cari `; notify-keyspace-events "Ex"` dan buka ulasan sebelumnya

3 Mulakan semula perkhidmatan 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);
}
<.>Mulakan ujian

php demo.php

Keputusan selepas 3 saat

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

redis-cli


setex foo 3 bar

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tugas berjadual dalam php redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam