Redis入門【七】---------雜湊雜湊(Hash)
阿新 • • 發佈:2018-12-09
前言
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一個個地取出來它的值,避免因為一次獲取多個大體積的值而導致伺服器組賽。