Redis 筆記(三)雜湊型別命令
阿新 • • 發佈:2018-12-19
雜湊型別
- 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
//如果增量的操作物件不是整型變數會出錯