Home  >  Article  >  Backend Development  >  How to implement scheduled tasks in php redis

How to implement scheduled tasks in php redis

藏色散人
藏色散人Original
2022-10-24 09:39:221404browse

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 the scheduled task.

How to implement scheduled tasks in php redis

The operating environment of this tutorial: Windows 7 system, PHP version 8.1, Dell G3 computer.

How does php redis implement scheduled tasks?

php redis implements scheduled tasks

Modify the configuration file redis.conf

; notify-keyspace-events ""

to

notify-keyspace-events "Ex"

Notes:

1.Linux is normal Configuration

2. Configure under windows, `notify-keyspace-events ""` does not have the previous comment by default. You can choose to modify it directly here or comment out the current line, and look up for `; notify -keyspace-events "Ex"` Open the previous comment

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

Recommended study: "PHP Video Tutorial"

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:
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