ホームページ > バックエンド開発 > PHPの問題 > PHP Redisでスケジュールされたタスクを実装する方法

PHP Redisでスケジュールされたタスクを実装する方法

藏色散人
リリース: 2023-03-17 08:32:02
オリジナル
1452 人が閲覧しました

php redis メソッドによるスケジュールされたタスクの実装: 1. 構成ファイル redis.conf の内容を「notify-keyspace-events "Ex"」に変更します; 2. redis サービスを再起動します; 3. 「object」を渡します(Redis)# 1(0){}string(22) "__keyevent@*__:expired"string(22) "__keyevent@0__:expire..." スケジュールされたタスクを実装するだけです。

PHP Redisでスケジュールされたタスクを実装する方法

#このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター

#php redis はスケジュールされたタスクをどのように実装しますか?

php redis はスケジュールされたタスクを実装します

構成ファイル redis.conf

; notify-keyspace-events ""
ログイン後にコピー

notify-keyspace-events "Ex"
ログイン後にコピー

Notes:

# に変更します。 ##1.Linux は通常の設定です。

##2. Windows で設定すると、デフォルトでは `notify-keyspace-events ""` には前のコメントがありません。ここで直接変更するか、コメントアウトするかを選択できます。現在の行を検索し、「; Notice -keyspace-events "Ex"」を探します。 前のコメントを開きます。

3. Redis サービスを再起動します。

php Demon.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);
}
ログイン後にコピー

テストを開始します

phpデモ .php

3秒後の結果

object(Redis)#1 (0) {
}
string(22) "__keyevent@*__:expired"
string(22) "__keyevent@0__:expired"
string(2) "k1"
ログイン後にコピー

redis-cli

setex foo 3 bar
ログイン後にコピー

推奨される調査: 「
PHP ビデオ チュートリアル

以上がPHP Redisでスケジュールされたタスクを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート