Redis散列(Hash)的相关命令
散列
就像一个减配的Redis
内部及其类似Java的Map
内容就是
key
:value
结构
hash
类型在面向对象编程的运用中及其适合,因为它可以直接保存编程语言中的实体类关系
增
hset
hset key field value
设置key
指定的哈希集字段的值
127.0.0.1:6379> hset user name zhangsan
(integer) 1
127.0.0.1:6379> hset user age 23
(integer) 1
127.0.0.1:6379> hset user address china
(integer) 1
hsetnx
hsetnx key field value
真正的哈希添加方法,如果field
不存在则添加
h
hmset
hmset key field1 value1 [field2 value2]
hset
的批量操作
127.0.0.1:6379> hmset zhangsan name zhangsan age 19 address hunan
OK
查
hget
hget key field
查询指定key
的某个字段的值
127.0.0.1:6379> hget user name
"zhangsan"
hexiste
hexists key field
判断key
中是否存在某个字段
127.0.0.1:6379> hexists user name
(integer) 1
127.0.0.1:6379> hexists user name2
(integer) 0
hkeys
hkeys key
返回哈希中所有的字段名
hvals
hvals key
返回哈希中所有的value
hgetall
hgetall key
获取哈希中所有的字段和值
127.0.0.1:6379> hgetall user
1) "name"
2) "zhangsan"
3) "age"
4) "23"
5) "address"
6) "china"
hlen
hlen key
查询哈希的字段数量
hstrlen
hstrlen key field
查询某个字段的值的长度
修改
hset
修改某个字段的命令也是hset
如果
hset
操作执行的field
字段之前已经存在值,那么就相当于修改存在
127.0.0.1:6379> hset user name "zhangwuji"
(integer) 0 #虽然把那么修改了,但是因为这个命令没有对hash内部做添加操作,返回值是新添加数量,所以这里是0
hincrby
hincrby key field incremment
将哈希内部的某个整数字段的值自加,incremment
为增量
127.0.0.1:6379> hincrby user skill 1
(integer) 11
127.0.0.1:6379> hincrby user skill 1
(integer) 12
hincrbyfloat
hincrbyfloatkey field incremment
将哈希内部的某个浮点字段的值自加,incremment
为增量
删除
hdel
hdel key field1 field2 ...
删除哈希中n个字段