Redis リスト (リスト) は、挿入順に並べ替えられた単純な文字列のリストです。リストの先頭 (左) または末尾 (右) に要素を追加でき、リストには最大 232 - 1 個の要素 (4294967295、リストあたり 40 億以上の要素) を含めることができます。 (推奨: 「redis ビデオ チュートリアル 」)
##list
一般的なコマンド:
lpush、rpush、lpop、rpop、lrange、BLPOP (ブロックされたバージョン) など。アプリケーション シナリオ:
Redis リストには多くのアプリケーション シナリオがあり、Redis の最も重要なデータ構造の 1 つでもあります。 最新ニュースのランキングなどの機能を簡単に実装できます。 Lists のもう 1 つのアプリケーションはメッセージ キューです。Lists の PUSH 操作を使用してタスクを Lists に保存し、ワーカー スレッドが POP 操作を使用して実行するタスクを取り出します。実装方法:
Redis リストの実装は二重リンクリストであり、逆方向検索とトラバーサルをサポートでき、より便利です。ただし、追加のメモリ オーバーヘッドが発生するため、送信バッファ キューなどを含む Redis 内の多くの実装でもこのデータ構造が使用されます。 RPOPLPUSH ソースの宛先 コマンド RPOPLPUSH は、原子時間内に次の 2 つのアクションを実行します。 ソースのリスト 最後の要素内の要素 (末尾要素) がポップアウトされ、クライアントに返されます。 ソースによってポップされた要素を、宛先リストの先頭要素としてリスト宛先に挿入します。 ソースとデスティネーションが同じ場合、リストの末尾の要素を先頭に移動して要素を返します。この特殊なケースは、リストの回転操作とみなすことができます。 典型的な例はサーバー監視プログラムです。アクセシビリティを確保するために、可能な限り短い時間で Web サイトのグループを並行してチェックする必要があります。redis.lpush "downstream_ips", "192.168.0.10" redis.lpush "downstream_ips", "192.168.0.11" redis.lpush "downstream_ips", "192.168.0.12" redis.lpush "downstream_ips", "192.168.0.13" Then: next_ip = redis.rpoplpush "downstream_ips", "downstream_ips"BLPOP ジョブ、コマンド、リクエストの 3 つのリストがあるとします。ジョブは存在せず、コマンドとリクエストは両方とも保持されます。空ではないリスト。次のコマンドを考えてみましょう: BLPOP ジョブ コマンド リクエスト 30 #30 秒間ブロックします。0 の場合、無期限にブロックされます。ジョブ リストは空なのでスキップされます。コマンド リストの最初の要素は次のようになります。飛び出し。 1)「コマンド」主に避けるため投票。簡単な例として、リストを使用してワークキューを実装するとします。タスクを実行するスレッドは、pop のブロッキング バージョンを呼び出してタスクを取得できるため、タスクが存在するかどうかを確認するためのポーリングを回避できます。ワーカー スレッドはタスクが来たときにすぐに戻ることができ、ポーリングによる遅延も回避できます。
以上がRedis でリストを使用する場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。