hashes类型及操作
Redis hash是一个String类型的filed和value的映射表。它的添加、删除操作都是0(1)(平均)。hash特别是个用于存储对象。相较于将对象的每个字段存成单个String类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
一、hset 设置hash field为指定值,如果key不存在,则先创建
127.0.0.1:6379> hset user:001 name shangsan
(integer) 1
127.0.0.1:6379> hget user001 name
(nil)
127.0.0.1:6379> hget user:001 name
"shangsan"
二、hsetnx 设置hash field为指定值,如果key不存在,则先创建,如果存在返回0.
127.0.0.1:6379> hsetnx user:002 name lamp
(integer) 1
127.0.0.1:6379> get user:002 name
(error) ERR wrong number of arguments for 'get' command
127.0.0.1:6379> hget user:002 name
"lamp"
127.0.0.1:6379> hsetnx user:002 name lll
(integer) 0
127.0.0.1:6379> hget user:002 name
"lamp"
三、hmset 同时设置多个field。
127.0.0.1:6379> hmset user:001 name zhangsan age 20
OK
127.0.0.1:6379> hget user:001 name
"zhangsan"
127.0.0.1:6379> hget user:001 age
"20"
四、hmget 批量获取
127.0.0.1:6379> hmget user:001 name age
1) "zhangsan"
2) "20"
五、hincrby 对某一个建自增
127.0.0.1:6379> hincrby user:001 age 5
(integer) 25
127.0.0.1:6379> hget user:001 age
"25"
六、hexists 字段是否存在
127.0.0.1:6379> hexists user:001 name
(integer) 1
127.0.0.1:6379> hexists user:001 age
(integer) 1
127.0.0.1:6379> hexists user:001 score
(integer) 0
七、hlen 返回指定hash的field数量
127.0.0.1:6379> hlen user:001
(integer) 2
八、hdel删除指定的hash 的field
127.0.0.1:6379> hdel user:001 age
(integer) 1
127.0.0.1:6379> hget user:001 age
(nil)
九、hkeys 返回hash所有的field
127.0.0.1:6379> hkeys user:001
1) "name"
十、hvals 返回hash的所有value
127.0.0.1:6379> hvals user:001
1) "zhangsan"
十一、hgetall
获取某个hash中全部的field和value
127.0.0.1:6379> hgetall user:001
1) "name"
2) "zhangsan"