Home >Database >Redis >How to implement scheduled tasks in php redis

How to implement scheduled tasks in php redis

王林
王林forward
2023-05-26 23:57:214343browse

php redis method to implement scheduled tasks: 1. Modify the content of the configuration file redis.conf to "notify-keyspace-events "Ex""; 2. Restart the redis service; 3. Pass "object(Redis)#1(0){}string(22) "__keyevent@*__:expired"string(22) "__keyevent@0__:expire..." Just implement scheduled tasks.

php redis implements scheduled tasks

Modify the configuration file redis.conf

; notify-keyspace-events ""

to

notify-keyspace-events "Ex"

Note:

1.Linux normal configuration

2. Configure under windows, `notify-keyspace-events ""` does not have previous comments by default. You can choose to modify it directly here or comment out the current line and go up Find the comment in front of `; notify-keyspace-events "Ex"` and open it

3. Restart the redis service

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

Start the test

php demo.php

Result after 3 seconds

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

redis-cli

setex foo 3 bar

The above is the detailed content of How to implement scheduled tasks in php redis. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete