前一篇介绍了redis的第一种数据类型string。这一波来介绍一下第二种数据类型hash。
hash类似于程序中的对象,每个对象可以有多个属性。结构如下图:key -> field:value

hash 的命令都以 h 开头
1.hset key field value
> hset s1 name pygo age 18
(integer) 2
2.hget key field
> hget s1 name
"pygo"
> hget s1 age
"18"
> hget s1 hobby
(nil)
3.增加一个field
> hset s1 hobby girls
(integer) 1
> hget s1 hobby
"girls"
4.删除一个field:hdel key fielde
> hdel s1 hobby
(integer) 1
> hget s1 hobby
(nil)
5.获取全部字段和值:hgetall key
> hgetall s1
1) "name"
2) "pygo"
3) "age"
4) "18"
6.获取全部字段:hkeys key
> hkeys s1
1) "name"
2) "age"
7.获取全部值:hvals key
> hvals s1
1) "pygo"
2) "18"
8.判断field是否存在:hexists key field
hexists s1 name
(integer) 1
> hexists s1 hobby
(integer) 0
9.查看key有几个field:hlen key
> hlen s1
(integer) 2
10.批量获取field:hmget key field1 field2 …
> hmget s1 name age
1) "pygo"
2) "18"
11.批量设置field-value:hmset key field1 value1 field2 value2…
> hlen s1
(integer) 2
> hmset s1 hobby girls address china
OK
> hlen s1
(integer) 4
12.不存在才设置:hsetnx key field value
> hsetnx s1 name tom
(integer) 0
> hsetnx s1 nickname tom
(integer) 1
13.自增操作:hincrby key field increment
> hincrby s1 age 2
(integer) 20
注意:有自增 却没有自减操作。如果想要自减,可以用负数
> hincrby s1 age -2
(integer) 18
14.浮点数自增:hincrbyfloat key field increment
> hincrbyfloat s1 age 2.5
"20.5"
> hincrbyfloat s1 age -2.5
"18"
3243

被折叠的 条评论
为什么被折叠?



