Hash
hash在redis中是一种比较常用的数据类型,数据存储结构以
key:value
,可以存储复杂的数据结构,比如:对象,嵌套(list、set、zset) 数据
命令
- hset: 保存数据
- hget: 根据key 获取数据
- hmset:批量保存/修改
- hgetall: 获取所有数据
- hdel: 删除数据
- hincrby: 增加指定的值
- hsetnx: 新增字段,赋值,已存在不会做修改
测试
127.0.0.1:6379>
127.0.0.1:6379> hset ikang name tom
(integer) 1
127.0.0.1:6379> hset ikang age 18
(integer) 1
127.0.0.1:6379> hset ikang address beijing
(integer) 1
127.0.0.1:6379> type ikang
hash
127.0.0.1:6379> exists ikang
(integer) 1
127.0.0.1:6379> hlen ikang
(integer) 3
127.0.0.1:6379> hget ikang name
"tom"
127.0.0.1:6379> hgetall ikang
1) "name"
2) "tom"
3) "age"
4) "18"
5) "address"
6) "beijing"
127.0.0.1:6379> hkeys ikang
1) "name"
2) "age"
3) "address"
127.0.0.1:6379> hvals ikang
1) "tom"
2) "18"
3) "beijing"
127.0.0.1:6379> hmset ikang name jack age 20 gender 男 # 批量修改/保存
OK
127.0.0.1:6379> hlen ikang
(integer) 4
127.0.0.1:6379> hgetall ikang
name
jack
age
20
address
beijing
gender
男
127.0.0.1:6379> hdel ikang gender
1
127.0.0.1:6379> hgetall ikang
name
jack
age
20
address
beijing
127.0.0.1:6379> hincrby ikang age 2 #加2岁
22
127.0.0.1:6379> hget ikang age
22
127.0.0.1:6379>
127.0.0.1:6379> hincrby ikang age -10 #减10岁
12
127.0.0.1:6379> hget ikang age
12
127.0.0.1:6379> hsetnx ikang hobby '足球' # 不存新增成功
1
127.0.0.1:6379> hsetnx ikang name '小明' # 已存在新增失败
0
127.0.0.1:6379> hgetall ikang
name
jack
age
12
address
beijing
hobby
足球