Redisの主要なコマンド関連の詳細な説明
1. 概要:
この記事では主に Key に関連する Redis コマンドについて説明します。これらのコマンドを学習することは、Redis を学習するための非常に重要な基礎であり、Redis の可能性を最大限に活用するための強力なツールでもあります。 (推奨: redis ビデオ チュートリアル )
2. 関連コマンド リスト:
時間計算量 | コマンドの説明 | 戻り値 | |
O(N) | 時間計算量の N は、データベース内のキーの数を表します。パターンパラメータに一致するすべてのキーを取得します。大規模なデータベースの場合、このコマンドは非常に時間がかかり、Redis サーバーのパフォーマンスに比較的大きな影響を与えるため、通常の操作ではこのコマンドを呼び出さないようにする必要があることに注意してください。 pattern は、glob スタイルのワイルドカード形式をサポートしています。たとえば、* は 1 つ以上の任意の文字を表し、? は任意の文字を表し、[abc] は角括弧内の任意の文字を表します。 | パターンに一致するキーのリスト。 | |
O(N) | 時間計算量の N は、削除されたキーの数を表します。パラメータに指定したキーをデータベースから削除します。指定したキーが存在しない場合は無視されます。指定されたキーに関連付けられたデータ型が文字列型ではなく、リスト、セット、ハッシュ、ソートされたセットなどのコンテナー型である場合、各キーを削除するこのコマンドの時間計算量は O であることにも注意してください。 (M)。ここで、M はコンテナ内の要素の数を表します。文字列型 Key の場合、時間計算量は O(1) です。 | 削除されたキーの実際の数。 | |
O(1) | 指定されたキーが存在するかどうかを確認します。 | 1 は存在することを意味し、0 は存在しないことを意味します。 | |
O(1) | 現在のデータベースで指定されたキーをパラメータで指定されたデータベースに移動します。キーがターゲット データベースにすでに存在するか、現在のデータベースに存在しない場合、このコマンドは何も行わず 0 を返します。 | 移動が成功した場合は 1 を返し、それ以外の場合は 0 を返します。 | |
O(1) | 指定されたキーの名前を変更します。パラメータ内の 2 つの Key コマンドが同じである場合、またはソースキーが存在しない場合、このコマンドは関連するエラー情報を返します。 newKey がすでに存在する場合は、直接上書きされます。 | ||
O(1) | 新しい値が存在しない場合は、パラメータは新しい値に変更されます。他の条件は RENAME と一致します。 | 1 は変更が成功したことを意味し、そうでない場合は 0 を意味します。 | |
O(1) | キーに有効期限がある場合、このコマンドはその有効期限を削除し、キーがタイムアウトは発生しますが、永続的なストレージは可能です。 | 1 はキーの有効期限が削除されたことを意味し、0 はキーが存在しないか、有効期限がないことを意味します。 | |
O(1) | このコマンドは、パラメーターで指定されたキーのタイムアウト秒数を設定します。自動的に削除されます。タイムアウトが発生する前にキーが変更された場合、キーに関連付けられたタイムアウトは削除されます。 | 1 はタイムアウトが設定されていることを意味し、0 はキーが存在しないか設定できないことを意味します。 | |
EXPIREAT キーのタイムスタンプ | O(1) | このコマンドの論理機能は EXPIRE とまったく同じですが、唯一の違いはタイムアウトです。コマンドで指定した時間は相対時間ではなく絶対時間です。 time パラメータは Unix タイムスタンプ形式で、1970 年 1 月 1 日から経過した秒数を表します。 | 1 はタイムアウトが設定されていることを示し、0 はキーが存在しないか設定できないことを示します。 |
TTL キー | O(1) | キーの残りのタイムアウトの説明を取得します。 | 残りの説明を返します。キーが存在しない場合、またはタイムアウト設定がない場合は、-1 を返します。 |
RANDOMKEY | O(1) | 現在開いているデータベースからキーをランダムに返します。 | 返されるランダムなキー、またはデータベースが空の場合は nil 。 |
TYPE key | O(1) | パラメータで指定されたキーに関連付けられた値のタイプを取得します。このコマンドはそれを返します。文字列形式。 | 返される文字列は、string、list、set、hash、zset です。キーが存在しない場合は、何も返されません。 |
SORT キー [BY パターン] [LIMIT オフセット数] [GET パターン [GET パターン ...]] [ASC|DESC] [ALPHA] [STORE 先] | O(N M*log(M)) | このコマンドは比較的複雑なので、ここでは最も基本的な使用法のみを説明します。興味のあるネットユーザーは、redis の公式ドキュメントを参照してください。 | ソートされた元のリストを返します。 |
3. コマンド例:
1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX:
#在Shell命令行下启动Redis客户端工具。 /> redis-cli #清空当前选择的数据库,以便于对后面示例的理解。 redis 127.0.0.1:6379> flushdb OK #添加String类型的模拟数据。 redis 127.0.0.1:6379> set mykey 2 OK redis 127.0.0.1:6379> set mykey2 "hello" OK #添加Set类型的模拟数据。 redis 127.0.0.1:6379> sadd mysetkey 1 2 3 (integer) 3 #添加Hash类型的模拟数据。 redis 127.0.0.1:6379> hset mmtest username "stephen" (integer) 1 #根据参数中的模式,获取当前数据库中符合该模式的所有key,从输出可以看出,该命令在执行时并不区分与Key关联的Value类型。 redis 127.0.0.1:6379> keys my* 1) "mysetkey" 2) "mykey" 3) "mykey2" #删除了两个Keys。 redis 127.0.0.1:6379> del mykey mykey2 (integer) 2 #查看一下刚刚删除的Key是否还存在,从返回结果看,mykey确实已经删除了。 redis 127.0.0.1:6379> exists mykey (integer) 0 #查看一下没有删除的Key,以和上面的命令结果进行比较。 redis 127.0.0.1:6379> exists mysetkey (integer) 1 #将当前数据库中的mysetkey键移入到ID为1的数据库中,从结果可以看出已经移动成功。 redis 127.0.0.1:6379> move mysetkey 1 (integer) 1 #打开ID为1的数据库。 redis 127.0.0.1:6379> select 1 OK #查看一下刚刚移动过来的Key是否存在,从返回结果看已经存在了。 redis 127.0.0.1:6379[1]> exists mysetkey (integer) 1 #在重新打开ID为0的缺省数据库。 redis 127.0.0.1:6379[1]> select 0 OK #查看一下刚刚移走的Key是否已经不存在,从返回结果看已经移走。 redis 127.0.0.1:6379> exists mysetkey (integer) 0 #准备新的测试数据。 redis 127.0.0.1:6379> set mykey "hello" OK #将mykey改名为mykey1 redis 127.0.0.1:6379> rename mykey mykey1 OK #由于mykey已经被重新命名,再次获取将返回nil。 redis 127.0.0.1:6379> get mykey (nil) #通过新的键名获取。 redis 127.0.0.1:6379> get mykey1 "hello" #由于mykey已经不存在了,所以返回错误信息。 redis 127.0.0.1:6379> rename mykey mykey1 (error) ERR no such key #为renamenx准备测试key redis 127.0.0.1:6379> set oldkey "hello" OK redis 127.0.0.1:6379> set newkey "world" OK #由于newkey已经存在,因此该命令未能成功执行。 redis 127.0.0.1:6379> renamenx oldkey newkey (integer) 0 #查看newkey的值,发现它也没有被renamenx覆盖。 redis 127.0.0.1:6379> get newkey "world"
2. PERSIST/EXPIRE/EXPIREAT/TTL:
#为后面的示例准备的测试数据。 redis 127.0.0.1:6379> set mykey "hello" OK #将该键的超时设置为100秒。 redis 127.0.0.1:6379> expire mykey 100 (integer) 1 #通过ttl命令查看一下还剩下多少秒。 redis 127.0.0.1:6379> ttl mykey (integer) 97 #立刻执行persist命令,该存在超时的键变成持久化的键,即将该Key的超时去掉。 redis 127.0.0.1:6379> persist mykey (integer) 1 #ttl的返回值告诉我们,该键已经没有超时了。 redis 127.0.0.1:6379> ttl mykey (integer) -1 #为后面的expire命令准备数据。 redis 127.0.0.1:6379> del mykey (integer) 1 redis 127.0.0.1:6379> set mykey "hello" OK #设置该键的超时被100秒。 redis 127.0.0.1:6379> expire mykey 100 (integer) 1 #用ttl命令看一下当前还剩下多少秒,从结果中可以看出还剩下96秒。 redis 127.0.0.1:6379> ttl mykey (integer) 96 #重新更新该键的超时时间为20秒,从返回值可以看出该命令执行成功。 redis 127.0.0.1:6379> expire mykey 20 (integer) 1 #再用ttl确认一下,从结果中可以看出果然被更新了。 redis 127.0.0.1:6379> ttl mykey (integer) 17 #立刻更新该键的值,以使其超时无效。 redis 127.0.0.1:6379> set mykey "world" OK #从ttl的结果可以看出,在上一条修改该键的命令执行后,该键的超时也无效了。 redis 127.0.0. 1:6379> ttl mykey (integer) -1
3. TYPE/RANDOMKEY/SORT:
#由于mm键在数据库中不存在,因此该命令返回none。 redis 127.0.0.1:6379> type mm none #mykey的值是字符串类型,因此返回string。 redis 127.0.0.1:6379> type mykey string #准备一个值是set类型的键。 redis 127.0.0.1:6379> sadd mysetkey 1 2 (integer) 2 #mysetkey的键是set,因此返回字符串set。 redis 127.0.0.1:6379> type mysetkey set #返回数据库中的任意键。 redis 127.0.0.1:6379> randomkey "oldkey" #清空当前打开的数据库。 redis 127.0.0.1:6379> flushdb OK #由于没有数据了,因此返回nil。 redis 127.0.0.1:6379> randomkey (nil)
Redis の詳細については、こちらをご覧ください。 redis 入門チュートリアル 列に注目してください。
以上が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を返し、要素を読む前にキューが存在するかどうかを確認できます。

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

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

Redisカウンターは、Redisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Redisデータの有効期間戦略には2つのタイプがあります。周期削除:期限切れのキーを削除する定期的なスキャン。これは、期限切れの時間帯-remove-countおよび期限切れの時間帯-remove-delayパラメーターを介して設定できます。怠zyな削除:キーが読み取られたり書かれたりした場合にのみ、削除の有効期限が切れたキーを確認してください。それらは、レイジーフリーレイジーエビクション、レイジーフリーレイジーエクスピア、レイジーフリーラジーユーザーのパラメーターを介して設定できます。

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする
