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

How to implement scheduled tasks in php redis

王林
Release: 2023-05-26 23:57:21
forward
4334 people have browsed it

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 ""
Copy after login

to

notify-keyspace-events "Ex"
Copy after login

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);
}
Copy after login

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"
Copy after login

redis-cli

setex foo 3 bar
Copy after login

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!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template