redis 入门指南第二版 学习记录2 散列类型

博客介绍了Redis散列类型,其采用字典结构以键值对形式存储数据,字段值只能是字符串,适合存储对象。还详细讲解了散列类型的常用命令,如赋值、取值、判断字段是否存在、增加数字、删除字段等操作的对应命令及用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis 入门指南第二版 学习记录2 散列类型

介绍

我们现在已经知道Redis是采用字典结构以键值对对形式存储数据对,而散列类型(hash)和字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能潜逃其他数据类型.
散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象对属性,而字段值存储属性值.列入要存储ID为2对汽车对象,可以分别使用名为color name 和price对3个字段来存储该辆汽车的颜色 名称 和价格. 存储结构如下
在这里插入图片描述

命令

  1. 赋值与取值
    HSET 命令用来给字段赋值,而HGET命令用来获得字段的值.用法如下:
127.0.0.1:6379> HSET car price 300
(integer) 1
127.0.0.1:6379> HSET car name BMW
(integer) 1
127.0.0.1:6379> HGET car name
"BMW"

HSET命令的方便之处在于不区分插入和更新操作,这意味修改数据时不用先判断字段是否存在来决定要执行的时插入还是更新.当执行的是插入操作时命令返回 1 更行操作返回0. 也就是说当键本身不存在时,HSET还会自动建立它.
如果要设置多个字段时,可以使用HMSET,如:

// 设置多个字段
127.0.0.1:6379> HMSET key field1 value1 field2 value2
OK
// 获取多个字段
127.0.0.1:6379> HMGET key field1 field2
1) "value1"
2) "value2"
// 获取全部字段
127.0.0.1:6379> HGETAll key
1) "field1"
2) "value1"
3) "field2"
4) "value2"
  1. 判断字段是否存在
    HEXISTS命令用来判断一个字段是否存在.如果存在返回1,反之返回0,如果键不存在也会返回0
// 字段存在
127.0.0.1:6379> HEXISTS car name
(integer) 1
// 字段不存在
127.0.0.1:6379> HEXISTS car name2
(integer) 0
// 键不存在
127.0.0.1:6379> HEXISTS car2 name
(integer) 0
  1. 当字段不存在时赋值
    HSETNX(NX:表示ifNotExists)命令与HSET命令类似,区别在于如果字段已经存在,HSETNX命令将不执行任何操作

  2. 增加数字
    上一篇中学到了,INCRBY,HINCRBY命令与之类似,可以使字段值增加指定的整数.散列类型没有HINCR命令,

// 如果键值不存在则会默认创建 初始值为0
127.0.0.1:6379> HINCRBY person score 60
(integer) 60
127.0.0.1:6379> HGET person score
"60"

4 删除字段
HDEL 命令可以删除一个或者多个,返回值是被删除的字段个数;

// 一共两个字段
127.0.0.1:6379> HGETALL car
1) "price"
2) "300"
3) "name"
4) "BMW"
// 删除一个
127.0.0.1:6379> HDEL car price
(integer) 1
// 删除后的所有字段
127.0.0.1:6379> HGETALL car
1) "name"
2) "BMW"
  1. 命令拾遗
    4.1 值获取字段名或字段值
    有时仅仅要获取键中所有字段的名字而不需要字段值,那么可以使用HKEYS命令
127.0.0.1:6379> HKEYS car
1) "name"

HVALS 命令与HKEYS命令相对应,HVALS命令用来获得键中所有字段值

127.0.0.1:6379> HVALS car
1) "BMW"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值