Redis学习第三课:Redis Hash类型及操作
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 Tom
(integer)1
127.0.0.1:6379>hset user:001 age 28
(integer)1
127.0.0.1:6379>hget user:001 name
"Tom"
hsetnx:设置hash field为指定值,如果key不存在,则先创建。如果存在则返回0。
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"