Maison >base de données >Redis >Comment implémenter des tâches planifiées dans php redis

Comment implémenter des tâches planifiées dans php redis

王林
王林avant
2023-05-26 23:57:214331parcourir

Comment implémenter des tâches planifiées dans PHP redis : 1. Modifiez le contenu du fichier de configuration redis.conf en "notify-keyspace-events "Ex"" ; 2. Redémarrez le service redis 3. Passez "object( Redis)#1( 0){}string(22) "__keyevent@*__:expired"string(22) "__keyevent@0__:expire..." Implémentez simplement les tâches planifiées

php + redis pour implémenter les tâches planifiées. tâches

Modification Modifiez le fichier de configuration redis.conf

; notify-keyspace-events ""

en

notify-keyspace-events "Ex"

Remarques :

1. Configuration Linux normale

2. Configurez sous Windows, `notify-keyspace-events ""` n'a pas le précédent. commenter par défaut, vous pouvez choisir de le modifier directement ici ou de commenter la ligne actuelle, rechercher et ouvrir le commentaire devant `; notify-keyspace-events "Ex"`

3 Redémarrez le service 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);
}

Démarrer le test

php demo.php

Résultat après 3 secondes

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

redis-cli

setex foo 3 bar

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer