ホームページ バックエンド開発 C#.Net チュートリアル Redis チュートリアル (4): ハッシュ データ型

Redis チュートリアル (4): ハッシュ データ型

Dec 28, 2016 pm 02:34 PM
redis

1. 概要:

Redis のハッシュ タイプは、文字列キーと文字列値を持つマップ コンテナーと考え​​ることができます。したがって、この型は値オブジェクトに関する情報を格納するのに非常に適しています。ユーザー名、パスワード、年齢など。ハッシュに含まれるフィールドがほとんどない場合、このタイプのデータが占有するディスク領域も非常に少なくなります。各ハッシュには 4294967295 個のキーと値のペアを保存できます。

2. 関連コマンドリスト:

パラメータのフィールドに関連付けられた値を返します。パラメータのキーまたはフィールドが存在しない場合は、nil が返されます。 1 は存在することを意味し、0 はパラメータ内のフィールドまたはキーが存在しないことを意味します。 Key に含まれる Field の数を返します。Key が存在しない場合は 0 を返します。 実際に削除されたフィールドの数。 1 は新しいフィールドに新しい値が設定されていることを意味し、0 はキーまたはフィールドがすでに存在していることを意味し、このコマンドは何も実行しません。 操作後の値を返すフィールド/値のリスト
コマンドプロトタイプ 時間計算量 コマンドの説明 戻り値
HSETキーフィールド値 O(1) キーがそうでない場合は、指定されたキーのフィールド/値ペアを設定します存在する場合、このコマンドはパラメーター内のフィールド/値のペアを持つ新しいキーを作成します。パラメーター内のフィールドがキーに既に存在する場合、その元の値は新しい値で上書きされます。 1 は、新しいフィールドを意味します。新しい値が設定されています。0 は、フィールドがすでに存在していることを意味します。元の値を新しい値で上書きします。 。
HEXISTSkey フィールド O(1) 指定された Key に指定された Field が存在するかどうかを判定します。
HLEN key O(1) Keyに含まれるFieldの数を取得します。
HDEL キー フィールド [フィールド ...] O(N) 時間計算量の N は、パラメーターで削除されるフィールドの数を表します。パラメータで指定された複数のフィールドを、指定されたキーのハッシュ値から削除します。フィールドが存在しない場合、それらのフィールドは無視されます。キーが存在しない場合は、空のハッシュとして扱われ、0 が返されます。
HSETNXkey フィールド値 O(1) パラメーター内のキーまたはフィールドが存在しない場合にのみ、指定されたキーのフィールド/値のペアを設定します。それ以外の場合、コマンドは操作を実行しません。
HINCRBYkey フィールドの増加 O(1) 指定された Key の指定された Field に関連付けられた Value の値を増加します。キーまたはフィールドが存在しない場合、このコマンドは新しいキーまたはフィールドを作成し、それに関連付けられた値を 0 に初期化して、数値を増やす操作を指定します。このコマンドでサポートされる数値は 64 ビットの符号付き整数です。つまり、増分は負の値になる可能性があります。
HGETALLkey O(N) 時間計算量のNはKeyに含まれるFieldの数を表します。このキーに含まれるすべてのフィールド/値を取得します。戻り値の形式はフィールド、値などです。
HKEYSkey O(N) 時間計算量の N は、キーに含まれるフィールドの数を表します。指定されたキーのすべてのフィールド名を返します。 フィールドのリスト。
HVALSkey O(N) 時間計算量の N は、キーに含まれるフィールドの数を表します。指定されたキーのすべての値の名前を返します。 値のリスト。
MGETkey field [field...] O(N) 時間計算量の N は、要求されたフィールドの数を表します。パラメータで指定されたフィールドに関連付けられた値のセットを取得します。要求されたフィールドが存在しない場合、その値は nil を返します。キーが存在しない場合、コマンドはそれを空のハッシュとして扱うため、nil のセットを返します。 リクエストされたフィールドに関連付けられた値のセットを返します。返される順序は、フィールドのリクエスト順序と同じです。
HMSET キーフィールド値 [フィールド値...] O(N) 時間計算量の N は、設定されているフィールドの数を表します。パラメータで指定されたフィールド/値のペアをペアごとに設定します。いずれかのフィールドがすでに存在する場合、元の値は新しい値で上書きされます。キーが存在しない場合は、新しいキーを作成し、パラメーターにフィールド/値を設定します。

3. コマンド例:

1. HSET/HGET/HDEL/HEXISTS/HLEN/HSETNX:

 #在Shell命令行启动Redis客户端程序
    /> redis-cli
    #给键值为myhash的键设置字段为field1,值为stephen。
    redis 127.0.0.1:6379> hset myhash field1 "stephen"
    (integer) 1
    #获取键值为myhash,字段为field1的值。
    redis 127.0.0.1:6379> hget myhash field1
    "stephen"
    #myhash键中不存在field2字段,因此返回nil。
    redis 127.0.0.1:6379> hget myhash field2
    (nil)
    #给myhash关联的Hashes值添加一个新的字段field2,其值为liu。
    redis 127.0.0.1:6379> hset myhash field2 "liu"
    (integer) 1
    #获取myhash键的字段数量。
    redis 127.0.0.1:6379> hlen myhash
    (integer) 2
    #判断myhash键中是否存在字段名为field1的字段,由于存在,返回值为1。
    redis 127.0.0.1:6379> hexists myhash field1
    (integer) 1
    #删除myhash键中字段名为field1的字段,删除成功返回1。
    redis 127.0.0.1:6379> hdel myhash field1
    (integer) 1
    #再次删除myhash键中字段名为field1的字段,由于上一条命令已经将其删除,因为没有删除,返回0。
    redis 127.0.0.1:6379> hdel myhash field1
    (integer) 0
    #判断myhash键中是否存在field1字段,由于上一条命令已经将其删除,因为返回0。
    redis 127.0.0.1:6379> hexists myhash field1
    (integer) 0
    #通过hsetnx命令给myhash添加新字段field1,其值为stephen,因为该字段已经被删除,所以该命令添加成功并返回1。
    redis 127.0.0.1:6379> hsetnx myhash field1 stephen
    (integer) 1
    #由于myhash的field1字段已经通过上一条命令添加成功,因为本条命令不做任何操作后返回0。
    redis 127.0.0.1:6379> hsetnx myhash field1 stephen
    (integer) 0
ログイン後にコピー

2. HINCRBY:

 #删除该键,便于后面示例的测试。
    redis 127.0.0.1:6379> del myhash
    (integer) 1
    #准备测试数据,该myhash的field字段设定值1。
    redis 127.0.0.1:6379> hset myhash field 5
    (integer) 1
    #给myhash的field字段的值加1,返回加后的结果。
    redis 127.0.0.1:6379> hincrby myhash field 1
    (integer) 6
    #给myhash的field字段的值加-1,返回加后的结果。
    redis 127.0.0.1:6379> hincrby myhash field -1
    (integer) 5
    #给myhash的field字段的值加-10,返回加后的结果。
    redis 127.0.0.1:6379> hincrby myhash field -10
    (integer) -5
ログイン後にコピー

3. HGETALL/HKEYS/ HMGET/ HMSET:

   #删除该键,便于后面示例测试。
    redis 127.0.0.1:6379> del myhash
    (integer) 1
    #为该键myhash,一次性设置多个字段,分别是field1 = "hello", field2 = "world"。
    redis 127.0.0.1:6379> hmset myhash field1 "hello" field2 "world"
    OK
    #获取myhash键的多个字段,其中field3并不存在,因为在返回结果中与该字段对应的值为nil。
    redis 127.0.0.1:6379> hmget myhash field1 field2 field3
    1) "hello"
    2) "world"
    3) (nil)
    #返回myhash键的所有字段及其值,从结果中可以看出,他们是逐对列出的。
    redis 127.0.0.1:6379> hgetall myhash
    1) "field1"
    2) "hello"
    3) "field2"
    4) "world"
    #仅获取myhash键中所有字段的名字。
    redis 127.0.0.1:6379> hkeys myhash
    1) "field1"
    2) "field2"
    #仅获取myhash键中所有字段的值。
    redis 127.0.0.1:6379> hvals myhash
    1) "hello"
    2) "world"
ログイン後にコピー

上記は Redis チュートリアル (4): ハッシュ データ型の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

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

Redisデータをクリアする方法 Redisデータをクリアする方法 Apr 10, 2025 pm 10:06 PM

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

Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

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

Centos RedisでLUAスクリプト実行時間を構成する方法 Centos RedisでLUAスクリプト実行時間を構成する方法 Apr 14, 2025 pm 02:12 PM

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

Redisコマンドの使用方法 Redisコマンドの使用方法 Apr 10, 2025 pm 08:45 PM

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

Redisロックの使用方法 Redisロックの使用方法 Apr 10, 2025 pm 08:39 PM

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

Redisコマンドラインの使用方法 Redisコマンドラインの使用方法 Apr 10, 2025 pm 10:18 PM

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

Redisの有効期限ポリシーを設定する方法 Redisの有効期限ポリシーを設定する方法 Apr 10, 2025 pm 10:03 PM

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

See all articles