Redis散列(Hash)的相关命令 4年前

#散列 就像一个减配的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个字段

伊藤诚的节操
私だって今日こそ... 遠野くんに告白するんだ。
4
发布数
0
关注者
2870
累计阅读

热门教程文档

Lua
21小节
Djiango
17小节
CSS
33小节
PHP
52小节
Objective-C
29小节
广告