1. 程式人生 > >Redis入門【七】---------雜湊雜湊(Hash)

Redis入門【七】---------雜湊雜湊(Hash)

前言

Redis的雜湊可以讓使用者將多個鍵值對存到一個redis鍵裡面,從功能來說,redis為雜湊值提供了一些與字串值相同特性,使得雜湊非常適合將一些相關的資料儲存到一起。

【1】新增和刪除鍵值對的雜湊操作

#<1>同時將單個/多個 field-value (域-值)對設定到雜湊表 key 中
hset  key field value
hmset key field value [field value ...]
#<2>獲取單個/所有給定欄位的值
hget  key field
hmget key field [field ...]
#<3>刪除雜湊裡面的一個或多個鍵值對,返回成功刪除的數量
hdel key field [field ...]
#<4>返回雜湊包含的鍵值對數量
hlen key

127.0.0.1:6379>  hmset hhh a-user tacks a-age 18 a-from nyist
OK
127.0.0.1:6379>  hmget hhh a-user a-age a-from
1) "tacks"
2) "18"
3) "nyist"
127.0.0.1:6379> hset hhh a-city  noknow
(integer) 1
127.0.0.1:6379> hget hhh a-city
"noknow"
127.0.0.1:6379> hdel hhh a-city
(integer) 1
127.0.0.1:6379> hlen hhh
(integer) 3
127.0.0.1:6379>

注意: 類似hmget hmset 這種批量處理多個鍵的命令既可以給使用者帶來方便,又可以通過減少命令的呼叫次數以及客戶端與redis之間的通訊往返次數來提升redis的效能。

【2】其他特性命令

#<5>檢查給定的域是否存在雜湊中
hexists key field
#<6>獲取雜湊中所有的域
hkeys key
#<7>獲取雜湊中所有的值
hvals key
#<8>獲取雜湊中所有的鍵值對
hgetall key
#<9>將雜湊中域的值加上一定整數   
hincrby key field increment
#<10>將雜湊中域的值加上一定浮點數
hincrbyfloat key field increment
127.0.0.1:6379> hexists hhh a-user
(integer) 1 #存在返回1
127.0.0.1:6379> hexists hhh a
(integer) 0 #不存在返回0
127.0.0.1:6379> hexists hhh a-user
(integer) 1
127.0.0.1:6379> hkeys hhh
1) "a-user"
2) "a-age"
3) "a-from"
127.0.0.1:6379> hvals hhh
1) "tacks"
2) "18"
3) "nyist"
127.0.0.1:6379> hgetall hhh
1) "a-user"
2) "tacks"
3) "a-age"
4) "18"
5) "a-from"
6) "nyist"
127.0.0.1:6379> hincrby hhh a-age 2
(integer) 20
127.0.0.1:6379> hincrby hhh a-money 99
(integer) 99
127.0.0.1:6379> hincrbyfloat key a-money 0.999
"0.999"

注意 : 儘管有hgetall這樣獲取域值的命令,但是hkeys和hvals也是非常有用的:如果雜湊的包含的值非常大,那麼使用者可以顯示用hkeys

獲取雜湊包含所有的鍵,然後再使用hget一個個地取出來它的值,避免因為一次獲取多個大體積的值而導致伺服器組賽。

打個總結

redis雜湊常用命令