redis-hash常用命令

命令demo

# hest key field value 添加元素,可以批量操作
#如果key不存在,会创建key,如果属性字段不存在,则创建,如果属性字段已经存在,则覆盖之前
127.0.0.1:6379> hset user name zhangsan age 16
(integer) 2


#---------------------------
# hkeys key 查看key下所有的field
127.0.0.1:6379> hkeys user
1) "name"
2) "age"

#---------------------------
# hsetnx key field value
#如果key不存在,则新建,如果field不存在则创建,
#如果field存在,不做任何修改
127.0.0.1:6379> hsetnx order id 1106
(integer) 1
127.0.0.1:6379> hkeys order
1) "id"
127.0.0.1:6379> hget order id
"1106"
127.0.0.1:6379> hset order id 1107
(integer) 0

127.0.0.1:6379> hsetnx order price 66.77
(integer) 1

# hsetnx 命令不支持批量操作
127.0.0.1:6379> hsetnx order id 1106 num 3
(error) ERR wrong number of arguments for 'hsetnx' command
127.0.0.1:6379> hkeys order
1) "id"
2) "price"

#---------------------------
# hlen key
# 根据key查询其field的个数
127.0.0.1:6379> hlen order
(integer) 2

#---------------------------
# hgetall key
# 查询key下所有的field value
127.0.0.1:6379> HGETALL order
1) "id"
2) "1107"
3) "price"
4) "66.77"

#---------------------------
# hget key field
# 获取key下 field对应的value,支持批量操作
127.0.0.1:6379> hget order id
"1107"
127.0.0.1:6379> hget order price
"66.77"
127.0.0.1:6379> hgetall order
1) "id"
2) "1107"
3) "price"
4) "66.77"

#---------------------------
# held key field
# 根据field执行delete操作,支持批量删除
127.0.0.1:6379> HDEL order id
(integer) 1
127.0.0.1:6379> HKEYS order
1) "price"

#---------------------------
# hexists key field
# 判断key下指定的field是否存在
127.0.0.1:6379> hexists order id
(integer) 0
127.0.0.1:6379> hexists order price
(integer) 1

#---------------------------
# hvals key
# 查看key下所有fiele对应的value
127.0.0.1:6379> hvals order
1) "66.77"

#---------------------------
# hstrlen key field
# 查看key下指定field的值的长度
127.0.0.1:6379> HSTRLEN order price
(integer) 5

#---------------------------
# hmset key field value [field value]
# 批量设置field 和 valued,如果field不存在则新建,如果存在则覆盖
127.0.0.1:6379> hmset order id 1101 price 66.88 number 17 date 2020-01-01
OK

#---------------------------
# hmget key field [field]
# 批量查询field的value
127.0.0.1:6379> hmget order id price notexists
1) "1101"
2) "66.88"
3) (nil)


#---------------------------
# hincrby key field increment
# 增加field的值,increment为步长,可为负数、也可为正数
# 但是该命令只能操作存储的值为整的的,否则报错
127.0.0.1:6379> HINCRBY order num 1
(integer) 1
127.0.0.1:6379> hget order number
"17"
127.0.0.1:6379> hincrby order num 1
(integer) 2

127.0.0.1:6379> hincrby order username 1
(error) ERR hash value is not an integer
127.0.0.1:6379> hincrby order sumprice 1
(error) ERR hash value is not an integer

127.0.0.1:6379> 
127.0.0.1:6379> HKEYS order
1) "price"
2) "id"
3) "number"
4) "date"
5) "num"
127.0.0.1:6379> hget order number
"17"
127.0.0.1:6379> HINCRBY order number 1
(integer) 18
127.0.0.1:6379> hincrby order number 3
(integer) 21
127.0.0.1:6379> hincrby order num -2
(integer) 0
127.0.0.1:6379> hincrby order number -2
(integer) 19

#---------------------------
# hincrbyfloat key field increment
# 增加field的值,increment为步长,可为负数、也可为正数
# 该命令只能操作value为数值(整数、浮点数)型的数据
127.0.0.1:6379> HINCRBYFLOAT order price 0.22
"67.1"
127.0.0.1:6379> hincrbyfloat order id 0.2
"17.2"
127.0.0.1:6379> hincrbyfloat order sumprice 1
"126.09"
127.0.0.1:6379> hincrbyfloat order username 0.2
(error) ERR hash value is not a float
127.0.0.1:6379> 
127.0.0.1:6379> hget order price
"67.1"
127.0.0.1:6379> hgetall order
 1) "price"
 2) "67.1"
 3) "id"
 4) "1101"
 5) "number"
 6) "19"
 7) "date"
 8) "2020-01-01"
 9) "num"
10) "0"
127.0.0.1:6379> hvals order
1) "67.1"
2) "1101"
3) "19"
4) "2020-01-01"
5) "0"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> clear

127.0.0.1:6379> hset order id 0017
(integer) 1
127.0.0.1:6379> hset order date 2021-06-03  sumprice 123.77 
(integer) 2
127.0.0.1:6379> hmset order userid 111006 username evelyn
OK
127.0.0.1:6379> hget order id
"0017"
127.0.0.1:6379> hmget order id userid username sumprice
1) "0017"
2) "111006"
3) "evelyn"
4) "123.77"
127.0.0.1:6379> hexists order id
(integer) 1
127.0.0.1:6379> hexists order number
(integer) 0
127.0.0.1:6379> hgetall order
 1) "id"
 2) "0017"
 3) "date"
 4) "2021-06-03"
 5) "sumprice"
 6) "123.77"
 7) "userid"
 8) "111006"
 9) "username"
10) "evelyn"
127.0.0.1:6379> hvals order
1) "0017"
2) "2021-06-03"
3) "123.77"
4) "111006"
5) "evelyn"
127.0.0.1:6379> hdel order date
(integer) 1
127.0.0.1:6379> hvals
(error) ERR wrong number of arguments for 'hvals' command
127.0.0.1:6379> hvals order
1) "0017"
2) "123.77"
3) "111006"
4) "evelyn"
127.0.0.1:6379> hlen order
(integer) 4
127.0.0.1:6379> hstrlen order username
(integer) 6
127.0.0.1:6379> hkeys order
1) "id"
2) "sumprice"
3) "userid"
4) "username"
127.0.0.1:6379> hvals order
1) "0017"
2) "123.77"
3) "111006"
4) "evelyn"
127.0.0.1:6379> hsetnx order id 6666
(integer) 0
127.0.0.1:6379> hget order id
"0017"
127.0.0.1:6379> hincrby order id 3
(error) ERR hash value is not an integer
127.0.0.1:6379> hincrby order id 3
(error) ERR hash value is not an integer
127.0.0.1:6379> hset order number 7
(integer) 1
127.0.0.1:6379> hincrby order number 1
(integer) 8
127.0.0.1:6379> hincrby order sumnumber 1
(integer) 1
127.0.0.1:6379> hkeys order
1) "id"
2) "sumprice"
3) "userid"
4) "username"
5) "number"
6) "sumnumber"
127.0.0.1:6379> hget order sumnumber
"1"
127.0.0.1:6379> hincrbyfloat order sumprice 1.32
"125.09"
127.0.0.1:6379> hvals
(error) ERR wrong number of arguments for 'hvals' command
127.0.0.1:6379> hvals order
1) "0017"
2) "125.09"
3) "111006"
4) "evelyn"
5) "8"
6) "1"
127.0.0.1:6379> 

常用场景
  • 对象信息
  • 经常变动的信息
  • 字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值