hash 是一个键值(key=>value)对集合。 hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储JSON序列化形式的对象。它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。如下:
命令:hset key field value,一次只设置一个field,hset命令可用作新增和更新,新增返回值为1,更新返回值为0
命令:hget key field,一次取一个field
127.0.0.1:6379> hset person name ce
(integer) 1
127.0.0.1:6379> hget person name
"ce"
127.0.0.1:6379> hset person name su
(integer) 0
127.0.0.1:6379> hget person name
"su"
命令:hmset key field1 value1 field2 value2,一次设置多个field
命令:hmget key field1 field2 ...,一次取多个field
127.0.0.1:6379> hmset person age 20 sex male
OK
127.0.0.1:6379> hmget person name age sex
1) "su"
2) "20"
3) "male"
命令:hsetnx key field value,不存在则新增,存在则不执行任何操作
127.0.0.1:6379> hsetnx person a 11
(integer) 1
127.0.0.1:6379> hsetnx person a 11
(integer) 0
命令:hgetall key,获取所有field
127.0.0.1:6379> hgetall person
1) "name"
2) "su"
3) "age"
4) "20"
5) "sex"
6) "male"
7) "a"
8) "11"
命令:hdel key field1 field2...,删除一个或者多个field,返回值为删除field的个数
127.0.0.1:6379> hdel person a
(integer) 1
127.0.0.1:6379> hdel person a sex
(integer) 1
127.0.0.1:6379> hdel person a sex
(integer) 0
命令:hincrby key field increment,当field是整数时,增加指定数值
127.0.0.1:6379> hincrby person age 2
(integer) 22
127.0.0.1:6379> hgetall person
1) "name"
2) "su"
3) "age"
4) "22"
命令:hexists key field,判断field是否存在,0:不存在,1:存在;
127.0.0.1:6379> hexists person male
(integer) 0
127.0.0.1:6379> hexists person name
(integer) 1
命令:hkeys key/hvals key,获取key中的field/value
127.0.0.1:6379> hkeys person
1) "name"
2) "age"
127.0.0.1:6379> hvals person
1) "su"
2) "22"
命令:hlen key,获取key中field的数量
127.0.0.1:6379> hlen person
(integer) 2
如果有写的不对的地方,请大家多多批评指正,非常感谢!