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 サイトの他の関連記事を参照してください。

Redisは、データをキャッシュし、分散ロックとデータの持続性を実装することにより、アプリケーションのパフォーマンスとスケーラビリティを向上させます。 1)キャッシュデータ:Redisを使用して頻繁にアクセスしたデータをキャッシュして、データアクセス速度を向上させます。 2)分散ロック:Redisを使用して分散ロックを実装して、分散環境での操作のセキュリティを確保します。 3)データの持続性:データの損失を防ぐために、RDBおよびAOFメカニズムを介してデータセキュリティを確保します。

Redisのデータモデルと構造には、5つの主要なタイプが含まれます。1。文字列:テキストまたはバイナリデータの保存に使用され、原子操作をサポートします。 2。リスト:キューとスタックに適した注文された要素コレクション。 3.セット:順序付けられていない一意の要素セット、セット操作をサポートします。 4。注文セット(sortedset):ランキングに適したスコアを持つ一意の要素セット。 5。ハッシュテーブル(ハッシュ):オブジェクトの保存に適したキー価値ペアのコレクション。

Redisのデータベースメソッドには、メモリ内データベースとキー価値ストレージが含まれます。 1)Redisはデータをメモリに保存し、速く読み取り、書き込みます。 2)キー価値のペアを使用してデータを保存し、キャッシュやNOSQLデータベースに適したリスト、コレクション、ハッシュテーブル、注文コレクションなどの複雑なデータ構造をサポートします。

Redisは、高速パフォーマンス、リッチデータ構造、高可用性とスケーラビリティ、持続性能力、幅広いエコシステムサポートを提供するため、強力なデータベースソリューションです。 1)非常に速いパフォーマンス:Redisのデータはメモリに保存され、非常に速い読み取り速度と書き込み速度が高く、高い並行性と低レイテンシアプリケーションに適しています。 2)豊富なデータ構造:さまざまなシナリオに適したリスト、コレクションなど、複数のデータ型をサポートします。 3)高可用性とスケーラビリティ:マスタースレーブの複製とクラスターモードをサポートして、高可用性と水平スケーラビリティを実現します。 4)持続性とデータセキュリティ:データの整合性と信頼性を確保するために、データの持続性がRDBとAOFを通じて達成されます。 5)幅広い生態系とコミュニティのサポート:巨大なエコシステムとアクティブなコミュニティにより、

Redisの主な機能には、速度、柔軟性、豊富なデータ構造のサポートが含まれます。 1)速度:Redisはメモリ内データベースであり、読み取り操作はほとんど瞬間的で、キャッシュとセッション管理に適しています。 2)柔軟性:複雑なデータ処理に適した文字列、リスト、コレクションなど、複数のデータ構造をサポートします。 3)データ構造のサポート:さまざまなビジネスニーズに適した文字列、リスト、コレクション、ハッシュテーブルなどを提供します。

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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

WebStorm Mac版
便利なJavaScript開発ツール

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