Redis hash是一個string類型的field和value的映射表。它的添加、刪除操做都是O(1)(平均)。hash特別適用於存儲對象。相較於對象的每一個字段存在單個string類型。將一個對象存儲在hash類型中會佔用更小的內存,而且能夠更方便的存取整個對象。測試
hset:設置hash field爲指定值,若是key不存在,則先建立。對象
hget:獲取指定的hash field。內存
127.0.0.1:6379>hset user:001 name Tomget
(integer)1string
127.0.0.1:6379>hset user:001 age 28hash
(integer)1command
127.0.0.1:6379>hget user:001 nameerror
"Tom"di
hsetnx:設置hash field爲指定值,若是key不存在,則先建立。若是存在則返回0。co
127.0.0.1:6379>hset user:001 name Jack
(integer)0
hmset:同時設置hash的多個字段。
hmget:獲取所有指定的hash field。
127.0.0.1:6379> hmset user:002 id 1 name Mark sex male age 29
OK
127.0.0.1:6379> hget user:002
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hmget user:002 id name male age
1) "1"
2) "Mark"
3) (nil)
4) "29"
hincrby:指定的hash field加上給定值。
127.0.0.1:6379> hincrby user:002 age 6
(integer) 35
127.0.0.1:6379> hincrby user:002 age -2
(integer) 33
hexists:測試指定field在hash中是否存在。
127.0.0.1:6379> hexists user:002 sex
(integer) 1
127.0.0.1:6379> hexists user:001 sex
(integer) 0
hlen:返回指定hash的field數量。
127.0.0.1:6379> hlen user:001
(integer) 2
127.0.0.1:6379> hlen user:002
(integer) 4
hdel:刪除指定hash的field。
127.0.0.1:6379> hdel user:002 sex
(integer) 1
127.0.0.1:6379> hget user:002 sex
(nil)
hkeys:返回hash的全部field。
127.0.0.1:6379> hkeys user:002
1) "id"
2) "name"
3) "age"
127.0.0.1:6379> hkeys user:001
1) "name"
2) "age"
hvals:返回hash的全部value。
127.0.0.1:6379> hvals user:002
1) "1"
2) "Mark"
3) "33"
hgetall:獲取某個hash中所有的field及value。
127.0.0.1:6379> hgetall user:002
1) "id"
2) "1"
3) "name"
4) "Mark"
5) "age"
6) "33"