Redis的使用(二) Redis散列hash

目录

1. 什么是散列

2. 命令使用

2.1 HSET关联域值对

2.2 HGET获取域关联的值

2.3 HSETNX命令

2.4 HEXISTS检查域是否存在

2.5 HDEL删除给定的域值对

2.6 HLEN获取键值对数量

2.7 HMSET/HMGET命令

2.8 获取散列包含的所有域、值、或者域值对

2.9 域的值自增操作

2.10 散列命令和字符串命令的对比


1. 什么是散列

一个散列由多个域值对组成,散列的域和值都可以是文字、整数、浮点数或者二 进制数据。同一个散列里面的每个域必须是独一无二、各不相同的,而域的值则没有这一要求,换句话说,不同域的值可以是重复的。
举个例子:

2. 命令使用

2.1 HSET关联域值对

HSET key field value
在散列键 key 中关联给定的域值对 field 和 value 。如果域 field 之前没有关联值,那么命令返回 1 ;如果域 field 已经有关联值,那么命令用新值覆盖旧值,并返回 0 。

hset user id 10001
hset user username admin
hset user gender 男
hset user phone 184XXXXXXXX

2.2 HGET获取域关联的值

HGET key field

回散列键 key 中,域 field 所关联的值。如果域 field 没有关联值,那么返回 nil 。

hget user username
hget user password

2.3 HSETNX命令

HSETNX key field value:仅当域不存在时,关联域值对,如果散列键 key 中,域 field 不存在,那么关联给定的域值对 field 和value 。如果域 field 已经有与之相关联的值,那么命令不做动作。

hsetnx user username admin1
hsetnx user password 123456

执行以上命令后,查看结果(username没有改变,password加上了):

2.4 HEXISTS检查域是否存在

HEXISTS key field
查看散列键 key 中,给定域 field 是否存在:存在返回 1 ,不存在返回 0 。

hexists user phone
hexists user phonenumber

2.5 HDEL删除给定的域值对

HDEL key field [field ...]
删除散列键 key 中的一个或多个指定域,以及那些域的值。不存在的域将被忽略。命令返回被成功删除的域值对数量。

hdel user password
hdel user phone gender

执行结果如下:

2.6 HLEN获取键值对数量

HLEN key:返回散列键 key 包含的域值对数量。

hlen user

2.7 HMSET/HMGET命令

HMSET key field value:批量关联域值对

HMGET key field:批量获取域值对的值

hmset user gender 男 phone 184XXXXXXXX
hmget user id username gender phone

2.8 获取散列包含的所有域、值、或者域值对

hkeys user
hvals user
hgetall user

2.9 域的值自增操作

通过将 increment 设为负数来做减法。当域不存在的时候,先将值初始化为 0 ,然后再执行 HINCRBY 操作。

hincrby user age 15
hincrby user age 1
hincrby user age -5
hincrbyfloat user moeny 55.4
hincrbyfloat user moeny 5.6
hincrbyfloat user moeny -1

2.10 散列命令和字符串命令的对比

本节类容到此结束

本人联系方式2329095893,欢迎各位进行学习讨论

欢迎关注熊熊出没ING公众号,不定时跟新Java、python、信息安全等相关知识哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值