1. 程式人生 > >Redis 筆記(三)雜湊型別命令

Redis 筆記(三)雜湊型別命令

雜湊型別

  1. hash相關的配置 在redis.conf檔案中,有關hash的配置如下
hash-max-ziplist-entries 512    //最大位元組說為512位元組
hash-max-ziplist-value 64   //最多欄位數為64

1.2hash的介紹 雜湊型別(hash)的鍵值是一種字典結構,redis也是採用字典結構已鍵值對的形式儲存資料,其儲存了欄位(field)和欄位值的對映,但欄位值只能是字串,不支援其他資料結構,意思是說,雜湊型別不能巢狀其他資料結構。 一個雜湊鍵值可以包含最多2^32 -1 個欄位。 2. hash相關的命令 HSET 用於在儲存的關鍵值的雜湊設定欄位。如果鍵不存在,新的key由雜湊建立。如果欄位已經存在於雜湊值那麼將被覆蓋。

HSET key field value
127.0.0.1:6379> HSET userInfo1 username 'name'
(integer) 1
127.0.0.1:6379> HSET userInfo1 password '12346'
(integer) 1
127.0.0.1:6379> HSET userInfo1 email '[email protected]'
(integer) 1

HGET 用於獲取與欄位中儲存的鍵雜湊相關聯的值。

127.0.0.1:6379> HGET userInfo1 username
"name"
127.0.0.1:
6379> HGET userInfo1 password "12346" 127.0.0.1:6379> HGET userInfo1 email "[email protected]"

HSETNX 用於在儲存的關鍵值的雜湊設定欄位,只有在欄位不存在。如果鍵不存在,新的key會被雜湊建立。如果欄位已經存在,該操作沒有任何影響。

HSETNX key field value
12



 127.0.0.1:6379> HSETNX userInfo1 username hello
(integer) 0 //uerInfo1已經存在,設定失敗,返回0
127.0.0.1:6379>
HSETNX userInfo2 username hello (integer) 1 127.0.0.1:6379> HGET userInfo2 username "hello"

HMSET 命令用於設定指定欄位各自的值,在儲存於鍵的雜湊。此命令將覆蓋雜湊任何現有欄位。如果鍵不存在,新的key由雜湊建立。

HMGET 用於獲取與儲存在鍵雜湊指定的欄位相關聯的值。如果欄位中雜湊不存在,則nil值被返回。

HMSET key field value [field value ...]
127.0.0.1:6379> HMSET userInfo2 password 987654 email 123456@163.com 
OK

HMGET key field [field ...]1



127.0.0.1:6379> HMGET userInfo2 uername password email
1) (nil)        //不小心寫錯的username欄位,返回為空
2) "987654"
3) "[email protected]"

HGETALL 用於獲取儲存在鍵的雜湊的所有欄位和值。在返回的值是每一個欄位名後跟其值,所以回覆的長度是雜湊值兩倍的大小。 HGETALL key1

127.0.0.1:6379> HGETALL userInfo2
1) "username"       //鍵名
2) "hello"          //鍵值
3) "password"       //鍵名
4) "987654"         //鍵值
5) "email"          //鍵名
6) "[email protected]" //鍵值

HKEYS 用來獲取所有欄位名儲存在鍵的雜湊值

HKEYS key
1
127.0.0.1:6379> HKEYS userInfo2
1) "username"
2) "password"
3) "email"

HVALS 用於獲取在儲存於 key的雜湊的所有值。 HVALS key

127.0.0.1:6379> HVALS userInfo2
1) "hello"
2) "987654"
3) "[email protected]"

HEXISTS 來檢查雜湊欄位是否存在。

HEXISTS key field
127.0.0.1:6379> HEXISTS userInfo2 username
(integer) 1
127.0.0.1:6379> HEXISTS userInfo2 user
(integer) 0

HLEN 用於獲取包含儲存於鍵的雜湊的欄位的數量。

HLEN key
127.0.0.1:6379> HLEN userInfo2
(integer) 3

HINCRBY 用於增加儲存在欄位中儲存由增量鍵雜湊的數量。如果鍵不存在,新的key被雜湊建立。如果欄位不存在,值被設定為0之前進行操作。

HINCRBY key field increment1



127.0.0.1:6379> HSET userInfo3 age 18
(integer) 1
127.0.0.1:6379> HINCRBY userInfo3 age 2
(integer) 20
127.0.0.1:6379> HGET userInfo3 age
"20"

127.0.0.1:6379> HINCRBY userInfo2 username 10
(error) ERR hash value is not an integer
//如果增量的操作物件不是整型變數會出錯