三、Redis基礎命令--hash

1、散列(hash)類型的字段值只能是字符串類型,不支持其他數據類型。即:散列類型內部不能嵌套其他類型。
     每個鍵最多能容納的字段數量與列表相同都是 2^32 - 1 個元素。內部用來存儲字段數量的變量類型應該是Integer,因爲一個整形是4個字節,每個字節8位,剛好32位,最大數字就是 2^32-1 個(包括0)。

2、Reids的其他數據類型同樣不支持數據類型嵌套。如 集合類型的每個元素都只能是字符串。

3、HSET 設置單個字段 ,HGET 獲取單個字段,HGETALL 獲取指定key的所有字段 ,KEY區分大小寫
          127.0.0.1:6379> HSET car name BMW
                (integer) 0
          127.0.0.1:6379> HGET car name
                "BMW"
          127.0.0.1:6379> HGETALL car
                1) "name"
                2) "BMW"
           127.0.0.1:6379> HGETALL car
               1) "name"
               2) "BMW"
               3) "price"
               4) "55"

4、HMSET 設置多個字段,HMGET獲取多個字段

          127.0.0.1:6379> HMSET person name klov age 23 sex men
               OK
          127.0.0.1:6379> HMGET person name age
               1) "klov"
               2) "23"

5、HEXISTS 判斷指定字段是否存在。字段存在返回1,不存在返回0key不存在也返回0

          127.0.0.1:6379> HEXISTS person name
               (integer) 1
          127.0.0.1:6379> HEXISTS person addr
               (integer) 0
          127.0.0.1:6379> HEXISTS per name
               (integer) 0

6、HSETNX 指定字段不存在時賦值;該操作是原子操作,不用擔心竟態條件;返回賦值個數(成功賦值返回1,否則返回0)。key不存在時也表示字段不存在,創建KEY並賦值。

          127.0.0.1:6379> HSETNX person age 23
               (integer) 0
          127.0.0.1:6379> HSETNX person age 24
               (integer) 0
          127.0.0.1:6379> HSETNX person addr 24
               (integer) 1
          127.0.0.1:6379> HSETNX per age 24
               (integer) 1

          內部實現就是判斷HEXIST返回值。僞代碼:
               isExist = HEXISTS person age
               if isExist is 0 ---- 字段age不存在OR key person不存在
                    HSET person age 25
                    return 1
               else
                    return 0

7、HINCRBY 增加指定的數字,和INCRBY命令類似。返回增加後的數字
          127.0.0.1:6379> HINCRBY person age 20
               (integer) 43
          127.0.0.1:6379> HGET person age
               "43"
     KEY或者字段不存在時都默認是0
          127.0.0.1:6379> HINCRBY person age2 20
               (integer) 20
          127.0.0.1:6379> HINCRBY per age3 20
               (integer) 20

8、HDEL 刪除一個或者多個字段,返回刪除字段的個數。KEY 不存在或者字段不存在返回0
     127.0.0.1:6379> HDEL per age3
          (integer) 1
     127.0.0.1:6379> HDEL person age name
          (integer) 2

9、HKEYS\HVALS key獲取指定KEY的所有字段\值
     127.0.0.1:6379> HKEYS person
          1) "sex"
          2) "addr"
          3) "age2"
     127.0.0.1:6379> HVALS person
          1) "men"
          2) "24"
          3) "20"

10、HLEN key 獲取指定key的所有字段的數量
     127.0.0.1:6379> HLEN person
               (integer) 3
                                   








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章