Redisのリストタイプと関連コマンドの詳細な説明
1. 概要:
Redis では、リスト タイプは、挿入順に並べ替えられた文字列のリンク リストです。データ構造内の通常のリンク リストと同様に、その先頭 (左) と末尾 (右) に新しい要素を追加できます。挿入中にキーが存在しない場合、Redis はキーの新しいリンク リストを作成します。 (推奨: redis ビデオ チュートリアル )
逆に、リンクされたリスト内のすべての要素が削除されると、キーもデータベースから削除されます。リストに含めることができる要素の最大数は 4294967295 です。
要素の挿入と削除の効率の観点から、リンク リストの両端で要素を挿入または削除すると、リンク リストに数百万のレコードが格納されている場合でも、これは非常に効率的な操作になります。 . 一定時間で操作を完了することもできます。
ただし、要素の挿入または削除操作がリンク リストの途中で実行されると、非常に非効率になることに注意してください。これは、優れたデータ構造の基盤を持つ開発者にとっては理解するのが難しいことではないと思います。
2. 関連コマンド リスト:
時間計算量 | コマンドの説明 | 戻り値 | |
O(1) | パラメータで指定されたすべての値を、指定されたキーに関連付けられたリスト値のヘッダーに挿入します。キーが存在しない場合、このコマンドは挿入前にキーに関連付けられた空のリンク リストを作成し、リンク リストの先頭からデータを挿入します。キーの値がリンク リスト タイプでない場合、このコマンドは関連するエラー情報を返します。 | 挿入後のリンク リスト内の要素の数。 | |
O(1) | パラメータで指定した Key が存在する場合のみ、コマンドが関連付けられます。リスト値の値がパラメータで指定された値に挿入されます。それ以外の場合、操作は行われません。 | 挿入後のリンク リスト内の要素の数。 | |
O(S N) | 時間計算量の S は start パラメータで表されるオフセットであり、N は開始パラメータを表します。要素量。このコマンドのパラメータ start と end はどちらも 0 から始まります。つまり、0 はリンク リストの先頭 (左端) の最初の要素を表します。 start の値は負の値にすることもできます。-1 はリンクされたリストの最後の要素、つまり末尾の要素を表し、-2 は最後から 2 番目の要素を表し、以下同様になります。このコマンドで要素を取得すると、開始位置と終了位置の要素も取り出されます。 start の値がリンク リスト内の要素の数より大きい場合、空のリンク リストが返されます。 end の値が要素の数より大きい場合、このコマンドは、start から始まるリンク リスト内の残りの要素をすべて取得します (start を含む)。 | 指定された範囲内の要素のリストを返します。 | |
O(1) | 指定されたキーに関連付けられたリンク リストの最初の要素を返し、ポップアップします。 head 要素。キーが存在しない場合は nil を返します。 | リンクされたリストの先頭の要素。 | |
O(1) | 指定されたキーに関連付けられたリンク リスト内の要素の数を返します。存在する場合は 0 を返します。キーに関連付けられた値のタイプがリンク リストでない場合は、関連するエラー情報が返されます。 | リンクされたリスト内の要素の数。時間計算量における | |
O(N) | N は、リンク リスト内の要素の数を表します。指定されたキーに関連付けられたリンク リストで、値が value に等しい最初の count 要素を削除します。 count が 0 より大きい場合は、最初から最後まで走査して削除し、count が 0 未満の場合は、端から先頭まで走査して削除します。 count が 0 に等しい場合、リンクされたリスト内の value に等しい要素をすべて削除します。指定したKeyが存在しない場合は、直接0を返します。 | 削除された要素の数を返します。 | |
O(N) | N (時間計算量) は、リンク リスト内の要素の数を表します。ただし、先頭要素または末尾要素を設定する場合の時間計算量は O(1) です。リンクされたリスト内の指定された位置の値を新しい値に設定します。0 は最初の要素、つまり先頭要素を表し、-1 は末尾要素を表します。インデックス値 Index がリンク リスト内の要素の数を超える場合、このコマンドは関連するエラー情報を返します。 | ||
LINDEX キー インデックス | O(N) | N の時間計算量は、検索時に走査する必要があることを意味しますelement 要素の数。先頭要素または末尾要素の場合、その時間計算量は O(1) です。このコマンドは、リンク リスト内の指定された位置 (インデックス) にある要素を返します。インデックスは 0 から始まり、先頭要素を意味します。インデックスが -1 の場合は末尾要素を意味します。キーがリンク リストに関連付けられていない場合、このコマンドは関連するエラー情報を返します。 | 要求された要素を返すか、インデックスが範囲外の場合は nil を返します。 |
LTRIM キー start stop | O(N) | N は削除された要素の数を表します。このコマンドは、指定された範囲内の要素のみを保持するため、リンク内の要素の数は比較的一定に保たれます。 start パラメータと stop パラメータはどちらも 0 ベースで、0 はヘッダー要素を示します。他のコマンドと同様に、start と stop には負の値を指定することもでき、-1 は末尾要素を表します。 start がリンク リストの終わりより大きい場合、または start が stop より大きい場合、このコマンドはエラーを報告しませんが、空のリンク リストを返し、キーも削除されます。 stop が要素の数より大きい場合、start から残っているすべての要素が保持されます。 | |
LINSERT キー BEFORE|AFTER ピボット値 | O(N) | 時間計算量の場合、N は検索時を意味します。要素がピボットする前に走査する必要がある要素の数。これは、ピボットがリンク リストの先頭または末尾にある場合、このコマンドの時間計算量は O(1) であることを意味します。このコマンドの機能は、ピボット要素の前後のパラメータに要素値を挿入することです。キーが存在しない場合、このコマンドは何も行いません。 Key に関連付けられた値の型がリンク リストではない場合、関連するエラー情報が返されます。 | 挿入が成功した後のリンク リスト内の要素の数。ピボットが見つからない場合は -1 が返されます。キーが存在しない場合は 0 が返されます。 |
RPUSH キー値 [値 ...] | O(1) | に関連付けられたリスト値の末尾にパラメータを挿入します。指定されたキーすべての値が指定されます。キーが存在しない場合、このコマンドは、挿入前にキーに関連付けられた空のリンク リストを作成し、リンク リストの末尾からデータを挿入します。キーの値がリンク リスト タイプでない場合、このコマンドは関連するエラー情報を返します。 | 挿入後のリンク リスト内の要素の数。 |
RPUSHX キーの値 | O(1) | パラメータで指定された Key が存在する場合のみ、コマンドがそれに関連付けられます。パラメータで指定された値はリスト値の最後に挿入されます。それ以外の場合、操作は行われません。 | 挿入後のリンク リスト内の要素の数。 |
O(1) | 指定されたキーに関連付けられたリンク リストの最後の要素を返し、ポップアップします。尾部要素。キーが存在しない場合は nil を返します。 | リンクされたリストの最後の要素。 | |
O(1) | ソース キーに関連付けられたリンク リストの末尾から要素をアトミックにポップし、再度ポップアップします。 要素は、宛先キーに関連付けられたリンク リストの先頭に挿入されます。ソースキーが存在しない場合、コマンドは nil を返し、他の操作は実行されません。ソースと宛先が同じキーの場合、関連付けられたリンク リストの末尾要素をリンク リストの先頭にアトミックに移動することと同じです。 | ポップおよび挿入された要素を返します。 |
以上がRedisのリストタイプと関連コマンドの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Redis指令を使用するには、次の手順が必要です。Redisクライアントを開きます。コマンド(動詞キー値)を入力します。必要なパラメーターを提供します(指示ごとに異なります)。 Enterを押してコマンドを実行します。 Redisは、操作の結果を示す応答を返します(通常はOKまたは-ERR)。

Redisを使用して操作をロックするには、setnxコマンドを介してロックを取得し、有効期限を設定するために有効期限コマンドを使用する必要があります。特定の手順は次のとおりです。(1)SETNXコマンドを使用して、キー価値ペアを設定しようとします。 (2)expireコマンドを使用して、ロックの有効期限を設定します。 (3)Delコマンドを使用して、ロックが不要になったときにロックを削除します。

Redisソースコードを理解する最良の方法は、段階的に進むことです。Redisの基本に精通してください。開始点として特定のモジュールまたは機能を選択します。モジュールまたは機能のエントリポイントから始めて、行ごとにコードを表示します。関数コールチェーンを介してコードを表示します。 Redisが使用する基礎となるデータ構造に精通してください。 Redisが使用するアルゴリズムを特定します。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。
