すべてのキーを走査する Redis メソッド
Redis key コマンドは、redis キーを管理するために使用されます。この記事では、Redis ですべてのキーを走査する 2 つの方法、KEYS パターンと SCAN カーソルを紹介します。
すべての Redis キーまたは指定されたモードのキーを走査する必要がある場合、最初に思い浮かぶのは KEYS コマンドです。公式 Web サイトには KEYS コマンドに関するヒントが記載されています: KEYS は非常に高速です。たとえば、Redis が 100 万個のキーを持つデータベースでクエリを実行するのに 40 ミリ秒かかります。ただし、大規模なデータベースで使用すると、依然としてパフォーマンスの問題が発生する可能性があるため、データ セットから特定の KEY を見つける必要がある場合は、代わりに Redis のコレクション構造 SETS を使用することをお勧めします。
KEYS コマンドの使用は非常に簡単です。
KEYS pattern
ただし、KEYS コマンドは一致するすべてのキーを一度に返すため、redis にキーが多すぎると、メモリ消費と redis サーバーに潜在的な危険が生じます。
Redis 2.8 の場合上記のバージョンでは、キーをトラバースするためのより優れたコマンド SCAN が提供されています。このコマンドの基本形式は:
redis> MSET one 1 two 2 three 3 four 4 OK redis> KEYS *o* 1) "four" 2) "one" 3) "two" redis> KEYS t?? 1) "two" redis> KEYS * 1) "four" 2) "three" 3) "one" 4) "two" redis>
SCAN です。各実行では少数の要素のみが返されるため、運用環境で使用できます。サーバーをブロックする可能性がある KEYS または SMEMBERS コマンドなどの問題。
SCAN コマンドはカーソルベースの反復子です。これは、コマンドが呼び出されるたびに、前の反復プロセスを継続するために、前の呼び出しによって返されたカーソルを呼び出しのカーソル パラメーターとして使用する必要があることを意味します。
When SCAN のカーソル パラメーターコマンド (カーソルなど) 0 に設定すると、サーバーは新しい反復を開始し、サーバーが値 0 のカーソルをユーザーに返すと、反復が終了したことを意味します。
簡単な反復のデモ:
SCAN cursor [MATCH pattern] [COUNT count]
上の例では、最初の反復ではカーソルとして 0 を使用し、新しい反復の開始を示します。 2 回目の反復では、最初の反復で返されたカーソル 17 を新しい反復パラメーターとして使用します。
明らかに、SCAN コマンドの戻り値は 2 つの要素を含む配列です。最初の配列要素は次の反復で使用される新しいカーソルで、2 番目の配列要素は別の配列です。この配列には、要素が反復されます。
注: 返されるカーソルは、必ずしもインクリメントしているわけではありません。返されるカーソルは、前のカーソルよりも小さくなる可能性があります。
SCAN コマンドが 2 回目に呼び出されるとき、コマンドはカーソル 0 を返します。これは、反復が終了し、データ セット全体が完全に走査されたことを示します。
完全な反復: カーソルとして 0 を使用して新しい反復を開始し、コマンドがカーソル 0 を返すまで SCAN コマンドを呼び出し続けます。このプロセスを完全なトラバーサルと呼びます。
SCAN 増分反復コマンドは、各実行で指定された数の要素が返されることを保証するものではなく、ゼロ要素を返す場合もありますが、コマンドによって返されるカーソルが 0 でない限り、アプリケーションはそのようなことを行うべきではありません。反復を完了したものとして扱います。
ただし、コマンドによって返される要素の数は常に特定のルールに準拠します。大規模なデータ セットの場合、増分反復コマンドは毎回最大数十の要素を返す可能性がありますが、十分に小さいデータ セットの場合は、 、すべてのキーが 1 回の反復で返される可能性があります
COUNT オプション
各反復で返される要素の数を保証しない増分反復コマンドの場合、動作に COUNT オプションを使用できます。コマンドをある程度調整しました。 COUNT オプションの目的は、各反復でデータ セットから返される要素の数をユーザーが反復コマンドに指示できるようにすることです。 COUNT オプションの使用は、増分反復コマンドのヒントと同等であり、ほとんどの場合、このヒントは戻り値の数を制御する上でより効果的です。
注: COUNT オプションは返されるキーの数を厳密に制御するものではなく、大まかな制約であるとしか言えません。各反復で同じ COUNT 値を使用する必要はありません。ユーザーは必要に応じて各反復の COUNT 値を変更できます。次の反復では、最後の反復から返されたカーソルを使用することを忘れないでください。
MATCH オプション
KEYS コマンドと同様に、増分反復コマンドは MATCH パラメーターを指定することで実装されます。グロブスタイルのモード パラメーターを指定すると、コマンドは指定されたモードのみを返します。要素。
MATCH オプションの要素のパターン マッチングは、コマンドがデータ セットから要素を取得した後、要素をクライアントに返すまでの期間中に実行されます。反復データセットが一致した場合、要素を返さずに反復コマンドが複数回実行される可能性があります。
以下はこの状況の例です:
redis 127.0.0.1:6379> scan 0 1) "17" 2) 1) "key:12" 2) "key:8" 3) "key:4" 4) "key:14" 5) "key:16" 6) "key:17" 7) "key:15" 8) "key:10" 9) "key:3" 10) "key:7" 11) "key:1" redis 127.0.0.1:6379> scan 17 1) "0" 2) 1) "key:5" 2) "key:18" 3) "key:0" 4) "key:2" 5) "key:19" 6) "key:13" 7) "key:6" 8) "key:9" 9) "key:11"
ご覧のとおり、上記の反復のほとんどは要素を返しません。最後の反復では、COUNT オプションのパラメーターを 1000 に設定して、コマンドがより多くの要素を返すように、この反復でより多くの要素を強制的にスキャンします。
SCAN のセキュリティに基づいて、運用環境では KEYS の代わりに SCAN コマンドを使用することをお勧めします。ただし、このコマンドはバージョン 2.8.0 以降に追加されたものであることに注意してください。このバージョンよりも古い場合は、Redis をアップグレードする必要があります。
以下では、PHP コードを使用して SCAN コマンドの使用方法を示しています:
redis 127.0.0.1:6379> scan 0 MATCH *11* 1) "288" 2) 1) "key:911" redis 127.0.0.1:6379> scan 288 MATCH *11* 1) "224" 2) (empty list or set) redis 127.0.0.1:6379> scan 224 MATCH *11* 1) "80" 2) (empty list or set) redis 127.0.0.1:6379> scan 80 MATCH *11* 1) "176" 2) (empty list or set) redis 127.0.0.1:6379> scan 176 MATCH *11* COUNT 1000 1) "0" 2) 1) "key:611" 2) "key:711" 3) "key:118" 4) "key:117" 5) "key:311" 6) "key:112" 7) "key:111" 8) "key:110" 9) "key:113" 10) "key:211" 11) "key:411" 12) "key:115" 13) "key:116" 14) "key:114" 15) "key:119" 16) "key:811" 17) "key:511" 18) "key:11" redis 127.0.0.1:6379>
実行結果:
[root@localhost php]# /usr/local/php/bin/php scan.php bm bm2 h1 name bit bm1 places cities hhl --------------------------------------------------------------------------------- bm bm2 h1 name bit bm1 places cities hhl
注意:如果php执行报错 请升级到较新版本的Redis扩展。
更多redis知识请关注redis入门教程栏目。
以上がすべてのキーを走査する Redis メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック

1. [スタート]メニューを起動し、[cmd]と入力し、[コマンドプロンプト]を右クリックし、[管理者として実行]を選択します。 2. 次のコマンドを順番に入力します (注意してコピーして貼り付けてください): SCconfigwuauservstart=auto、Enter キーを押す SCconfigbitsstart=auto、Enter キーを押す SCconfigcryptsvcstart=auto、Enter キーを押す SCconfigtrustedinstallerstart=auto、Enter キーを押す SCconfigwuauservtype=share、Enter キーを押す netstopwuauserv 、enter netstopcryptS を押す

GolangAPI のキャッシュ戦略により、パフォーマンスが向上し、サーバーの負荷が軽減されます。一般的に使用される戦略は、LRU、LFU、FIFO、TTL です。最適化手法には、適切なキャッシュ ストレージの選択、階層型キャッシュ、無効化管理、監視とチューニングが含まれます。実際には、データベースからユーザー情報を取得する API を最適化するために LRU キャッシュが使用されます。それ以外の場合は、データベースからデータを取得した後にキャッシュを更新できます。

PHP 開発では、キャッシュ メカニズムにより、頻繁にアクセスされるデータがメモリまたはディスクに一時的に保存され、データベース アクセスの数が削減され、パフォーマンスが向上します。キャッシュの種類には主にメモリ、ファイル、データベース キャッシュが含まれます。キャッシュは、組み込み関数またはサードパーティのライブラリ (cache_get() や Memcache など) を使用して PHP に実装できます。一般的な実用的なアプリケーションには、データベース クエリ結果をキャッシュしてクエリ パフォーマンスを最適化したり、ページ出力をキャッシュしてレンダリングを高速化したりすることが含まれます。キャッシュ メカニズムにより、Web サイトの応答速度が効果的に向上し、ユーザー エクスペリエンスが向上し、サーバーの負荷が軽減されます。

まず、システム言語を簡体字中国語表示に設定して再起動する必要があります。もちろん、以前に表示言語を簡体字中国語に変更したことがある場合は、この手順をスキップできます。次に、レジストリ regedit.exe の操作を開始し、左側のナビゲーション バーまたは上部のアドレス バーで HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage に直接移動し、InstallLanguage キーの値と Default キーの値を 0804 に変更します (英語に変更する場合)。まずシステムの表示言語を en-us に設定し、システムを再起動してから、すべてを 0409 に変更します) この時点でシステムを再起動する必要があります。

Redis キャッシュを使用すると、PHP 配列ページングのパフォーマンスを大幅に最適化できます。これは、次の手順で実現できます。 Redis クライアントをインストールします。 Redisサーバーに接続します。キャッシュ データを作成し、データの各ページをキー「page:{page_number}」を持つ Redis ハッシュに保存します。キャッシュからデータを取得し、大規模な配列での高コストの操作を回避します。

1. まず、デスクトップ上の[このPC]アイコンをダブルクリックして開きます。 2. 次に、マウスの左ボタンをダブルクリックして [C ドライブ] に入ります。システム ファイルは通常、自動的に C ドライブに保存されます。 3. 次に、C ドライブで [windows] フォルダーを見つけ、ダブルクリックしてに入ります。 4. [windows]フォルダーに入ったら、[SoftwareDistribution]フォルダーを見つけます。 5. 入力後、win11 のダウンロード ファイルとアップデート ファイルがすべて含まれている [ダウンロード] フォルダーを見つけます。 6. これらのファイルを削除したい場合は、このフォルダー内で直接削除してください。

Redis は、高性能のキー/値キャッシュです。 PHPRedis 拡張機能は、Redis サーバーと対話するための API を提供します。 Redis に接続し、データを保存および取得するには、次の手順を使用します。 接続: Redis クラスを使用してサーバーに接続します。ストレージ: set メソッドを使用してキーと値のペアを設定します。取得: get メソッドを使用してキーの値を取得します。

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...
