Redisの学習(II)のハッシュ

I.概要

私たちは、RedisのはString型としてキーハッシュ文字列値とマップ・コンテナを持つことができます。したがって、このタイプのオブジェクトの情報値を格納するのに非常に適しています。ユーザー名、パスワードの有効期間、などが挙げられます。ハッシュは非常に少ないフィールドが含まれている場合、このタイプのデータはまた、唯一の非常に少ないディスク領域を使用します。各ハッシュは4,294,967,295ペアを格納することができます。

第二に、関連するコマンド

1、割り当て

    例:HSETハッシュフィールドヴァル

    使用法:ハッシュテーブルが存在しない場合は、新しいハッシュテーブルを作成し、HSET操作されます。

                フィールドがすでにハッシュテーブルに存在する場合、古い値が上書きされます。

    戻り値:フィールドが返され、新しいフィールドのハッシュテーブル、および成功の値である場合。ハッシュテーブルが既にドメインフィールドに存在し、古い値が新しい値で上書きされた場合は、0を返します。

 

    例:hsetnxハッシュフィールドヴァル

    使用法:ハッシュテーブルが存在しない場合は、新しいハッシュテーブルを作成し、HSET操作されます。

               フィールドがすでにハッシュテーブルに存在する場合、操作は無効です。

               キーが存在しない場合は、新しいハッシュテーブルを作成し、HSETNXコマンドを実行しています。

    戻り値:正常に設定され、リターン1。与えられたフィールドが既に存在する場合と何ら操作は(実行されないHSETハッシュフィールドヴァルの差)、0を返します。

 

    例:hmsetハッシュフィールドヴァル

    使用法:フィールド値を同時に複数の - ハッシュテーブルに設けられた(フィールド値)。

                このコマンドは、すでに存在していることをハッシュテーブル内のフィールドを上書きします。

                ハッシュテーブルが存在しない場合は、空のハッシュテーブルを作成し、HMSET操作を行います。

    戻り値:コマンドが成功した場合は、OKを返します。

 

    例:hkeysハッシュ

    使用法:ハッシュテーブル(フィールド)内のすべてのフィールドを取得するために使用。

    戻り値:すべてのフィールドでA・ハッシュ・テーブル(フィールド)のリスト。キーが存在しない場合は、空のリストを返します。

127.0.0.1:6379> hmset myhash field1 1 filed2 2 filed3 3
OK
127.0.0.1:6379> hset myhash filed4 4
(integer) 1
127.0.0.1:6379> hsetnx myhash field2 66
(integer) 1
127.0.0.1:6379> hsetnx myhash filed2 666
(integer) 0
127.0.0.1:6379> hkeys myhash
1) "name"
2) "field1"
3) "filed2"
4) "filed3"
5) "filed4"
6) "field2"
127.0.0.1:6379>

図2に示すように、値

    例:hgetハッシュフィールド

    使用法:テーブル内の指定したフィールドのハッシュ値を返します。

    戻り値:指定されたフィールドの値を返します。指定されたフィールドまたはキーが存在しない場合は、nilを返します。

 

    例:hmgetハッシュフィールド1 ..fieldn 

    使用法:指定されたフィールドのハッシュテーブル、1つ以上の値を返します。指定したフィールドは、ハッシュテーブルに存在しない場合は、nilの値を返します。

    戻り値:指定されたフィールドとして要求フィールド関連する値、および注文テーブルの値を所定の配列の複数のテーブルを含みます。

 

    例:hvalsキー

    使用方法:のすべてのフィールド(フィールド)のハッシュテーブルの値を返します。

    戻り値:ハッシュテーブルのリスト(フィールド)の値は、すべてのフィールドが含まれています。場合は、キーは、空のテーブルは存在しません。

    

    例:hexistsキー

    使用法:表が存在するハッシュを表示するためのフィールドを指定します。

    戻り値:真のハッシュテーブルが指定されたフィールドを含む場合、リターン。ハッシュテーブルは、指定されたフィールドが含まれていない場合、またはキーは、0を返しますが存在しません。

 

    例:hgetallキー

    使用法:ハッシュテーブルを返すために使用され、すべてのフィールドと値。戻り値は、直後の各フィールド名(フィールド名)フィールド(値)の値であるので、戻り値は、ハッシュテーブルのサイズの長さの2倍です。

    戻り値:リストのフィールドとフィールド値ハッシュテーブル。キーが存在しない場合は、空のリストを返します。

 

    例:HLENハッシュ

    使用法:ハッシュテーブル内のフィールドの数を表示します。

    戻り値:キーは、0を返しますが存在しない場合は、ハッシュテーブルのフィールドの数を返します。

 

    例:HLENハッシュ

    使用法:ハッシュテーブル内のフィールドの数を表示します。

    戻り値:キーは、0を返しますが存在しない場合は、ハッシュテーブルのフィールドの数を返します。

  

127.0.0.1:6379> hkeys myhash                    #得到的是标签值
1) "name"
2) "field1"
3) "filed2"
4) "filed3"
5) "filed4"
6) "field2"
127.0.0.1:6379> HVALS myhash                    得到标签对应的值
1) "jack"
2) "1"
3) "2"
4) "3"
5) "4"
6) "66"
127.0.0.1:6379> hget myhash name                获取哈希表对应标签的值
"jack"
127.0.0.1:6379> hmget myhash name field1        获取多个标签的值
1) "jack"
2) "1"
127.0.0.1:6379> HEXISTS myhash name
(integer) 1
127.0.0.1:6379> hgetall myhash                 得到标签值+对应的值
 1) "name"
 2) "jack"
 3) "field1"
 4) "1"
 5) "filed2"
 6) "2"
 7) "filed3"
 8) "3"
 9) "filed4"
10) "4"
11) "field2"
12) "66"
127.0.0.1:6379> hlen myhash                  统计标签个数
(integer) 6
127.0.0.1:6379>

3、操作

    例:hincrbyハッシュフィールドNUM

    使用法:フィールドハッシュテーブルの値に加え、指定された増分値値として使用。増分は負であってもよい指定されたフィールドの減算操作に対応します。キーハッシュテーブルが存在しない場合は、新しいハッシュテーブルを作成し、HINCRBYコマンドを実行しています。指定されたフィールドが存在しない場合は、コマンドを実行する前に、値フィールドはゼロに初期化されます。文字列値格納されている実行HINCRBYコマンドのフィールドには、エラーが発生しますこの操作の値は、署名されたデジタル表現内の64ビット(ビット)に制限されます。

    戻り値:INCRフィールドの値の後。

 

    例:hincrbyfloatハッシュフィールドNUM

    使用法:フィールドハッシュテーブルの値に加え、指定された増分値値として使用。増分は負であってもよい指定されたフィールドの減算操作に対応します。キーハッシュテーブルが存在しない場合は、新しいハッシュテーブルを作成し、HINCRBYコマンドを実行しています。指定されたフィールドが存在しない場合は、コマンドを実行する前に、値フィールドはゼロに初期化されます。文字列値格納されている実行HINCRBYコマンドのフィールドには、エラーが発生しますこの操作の値は、署名されたデジタル表現内の64ビット(ビット)に制限されます。

    戻り値:INCRフィールドの値の後。

127.0.0.1:6379> hincrby myhash field2 -6
(integer) 60
127.0.0.1:6379> hincrby myhash field2 6
(integer) 66
127.0.0.1:6379> hincrbyfloat myhash field2 6.6
"72.599999999999994"
127.0.0.1:6379>

 

公開された22元の記事 ウォンの賞賛9 ビュー8818

おすすめ

転載: blog.csdn.net/ljm_c_bok/article/details/104841393