PHP + Redisのメッセージキューは、PHP + MySQLの不十分な性能中間処理スキームとの間の時間です。プロセスの中間によってデータの可用性と正確性を確保します。サーバー要求大きなモーメントのために、圧力は、大規模なデータベースです。同時データ複製が大量に得られ、大きな同時売られ過ぎの結果として。
プロセス:PHP要求とデータを受け入れる - > PHPのRedisのは、データキューを書く(エンキュー) - データの書き込み>シェルタイミングキューコールのPHPのMySQL(デキュー)を読みます
実装コード:
チームへ:inqueue.php
PHP
- <?PHP
- $ Redisの = 新しい Redisの();
- $ Redisの> - 接続('127.0.0.1' 、6379を;)
- $のRedisの - > を選択し('1' );
- $ Redisの- > 認証('' );
- データ$ = [ A 、B 、C 、D 、E 、F 、G 、H ]; データオーバー//これはGETまたはPOSTリクエストすることができます
- $データ = json_encode ($データ)。
- で$ = $のRedis - > rpush ('キュー' 、$データ);
- もし(中$ ){
- エコー 「チームの成功に」。
- }
チーム:outqueue.php
PHP
- #!は/ usr / bin / php
- <?PHP
- $ Redisの = 新しい Redisの();
- $ Redisの> - 接続('127.0.0.1' 、6379を;)
- $のRedisの - > を選択し('1' );
- $ Redisの- > 認証('' );
- $値 = $のRedis - > LPOP ('キュー' );
- $値 = json_decode ($値、真の);
シェルprocess.sh:通常のスクリプトはoutqueue.php呼び出します
PHP
- #1分に1回呼ばれること
- * * * * * は/ usr / ローカル/ nginxの/ HTML / プロセス。SH
PHP
- #!/ binに/ bashの
- #file_name:process.sh
- #author:zuoping
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
あなたは毎分周波数を呼び出す場合*十分ではありません、あなたはスクリプトを呼び出すことができますなど、複数回、実行:
PHP
- #!/ binに/ bashの
- #file_name:process.sh
- #author:zuoping
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- PHP / USR / ローカル/ nginxの/ HTML / outqueue 。PHP
- #この1分間の通話回数。
キュー内の現在のデータを表示します。
PHP
- <?PHP
- $ Redisの = 新しい Redisの();
- $ Redisの> - 接続('127.0.0.1' 、6379を;)
- $のRedisの - > を選択し('1' );
- $ Redisの- > 認証('' );
- $一覧 = $のRedis - > LRANGE ('キュー' 、0 、 - 1 );
- var_dump ($リスト)。