php+redis実装メッセージキュー



個人的には、プロジェクトでメッセージ・キューを使用するには、一般的に次の理由があります.
  • 瞬時サーバの要求処理を非同期処理に変更し、サーバの圧力を緩和
  • 実現データ順配列取得
  •  
    redis実装メッセージキューの手順は、次のとおりです.
    1).redis関数rpush,lpop
    2).推奨タイミングタスクキュー
    3)タイミングタスクアウトキューの作成
     
    ファイル:demo.php redisキューへのデータの挿入
    connect('127.0.0.1',6379);
    
    $password = '123456';
    
    $redis->auth($password);
    
    $arr = array('h','e','l','l','o','w','o','r','l','d');
    
    foreach($arr as $k=>$v){
    
      $redis->rpush("mylist",$v);
    
    }
    

      
    実行後の結果は次のとおりです.
    ?>
     
     
    ファイル:index.phpタイミングスキャンキュー
    connect('127.0.0.1',6379);
    
    $password = '123456';
    
    $redis->auth($password);
    
    //list      
    
    $value = $redis->lpop('mylist');
    
    if($value){
    
     echo "    ".$value;
    
    }else{
    
      echo "    ";
    
    }
    
    ?>
    

      
     
     
    タイミングタスクの確立
     */1 * * * * root php/wwwroot/workplace/redis/index.php
     */3 * * * * root php/wwwroot/workplace/redis/demo.php
     
    tail-f/var/log/cronタイミングタスク実行状況の表示
    Nov  7 00:30:01 dongzi CROND[6888]: (root) CMD (php/wwwroot/workplace/redis/demo.php)
    Nov  7 00:30:01 dongzi CROND[6890]: (root) CMD (php/wwwroot/workplace/redis/index.php )
    タイミングタスク実行キューの書き込み結果は次のとおりです.
    127.0.0.1:6379> lrange mylist 0 -1
    
     1) "h"
    
     2) "e"
    
     3) "l"
    
     4) "l"
    
     5) "o"
    
     6) "w"
    
     7) "o"
    
     8) "r"
    
     9) "l"
    
    10) "d"
    

      
    スケジュールタスクがキューから実行された後:
    127.0.0.1:6379> lrange mylist 0 -1
    
    1) "e"
    
    2) "l"
    
    3) "l"
    
    4) "o"
    
    5) "w"
    
    6) "o"
    
    7) "r"
    
    8) "l"
    
    9) "d"

     
    転載先:https://www.cnblogs.com/lisqiong/p/6039460.html