Redis Hash 是一个 String 类型的 field(域)和 value(值)的映射表,Hash 特别适合存储对象。Redis 中每个 Hash 可以存储 2^32-1 个键值对。

我们已经知道,Redis 中存储的都是 key-value 结构的数据,那么 Hash 类型的数据存储结构就应该是如下图所示:

field 和 value 共同组成了 key 所对应的 value。

Redis Hash 基本命令如下:

Redis Hash 基本命令
命令说明返回值示例
HMSET key field1 value1 [field2 value2 ...]用于同时将多个 field-value 对设置到哈希表中,此命令会覆盖哈希表中已存在的 key 值,如果 key 值不存在,会先创建,之后再执行 HMSET 操作成功返回 OK
HSET key field value用于为哈希表中的单个 field-value 设置值,如果 key 值不存在,会先创建,如果该 field 域已存在,则将覆盖旧值如果 field 是新创建的,返回 1, 如果 field 已存在, 返回 0
HSETNX key field value用于为哈希表中不存在的 field 赋值,如果该 field 已存在,则操作无效,如果 key 不存在,则创建并执行成功,返回1,如果 field 已经存在且没有操作被执行,返回0
HEXISTS key field用于查看哈希表的指定域是否存在如果有指定域,则返回1,如果没有该域,或者 key 不存在,则返回0
HGET key field用于获取哈希表中指定域的值返回指定字段的值,如果指定的字段或者 key 不存在时,返回 nil
HGETALL key用于返回哈希表中所有的字段和值以列表形式返回哈希表中的字段以及字段值,如果 key 不存在,则返回空列表
HMGET key field1 [field2 ...]用于返回哈希表中一个或多个指定字段对应的值,如果指定的字段不存在于哈希表中,则返回 nil一个包含多个指定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样
HKEYS key用于获取哈希表中的所有的域(field)包含哈希表中所有域的列表,如果 key 不存在,则返回一个空列表
HVALS key获取哈希表中所有的值,即所有的 field 对应的 value包含哈希表中所有值的列表,如果 key 不存在,则返回一个空列表
HLEN key获取哈希表中字段(field)的数量返回哈希表中字段的数量,当 key 不存在时,返回0
HINCRBY key field increment用于为哈希表中的字段加上指定增量值,增量值也可为负。如果指定的字段不存在,会先初始化为0,如果该字段对应的 value 值存储的为字符串值,那么该命令会执行出错执行该命令之后,哈希表中字段对应的值
HINCRBYFLOAT key field increment用于为哈希表中的字段加上指定的浮点数增量值,增量值也可为负。如果指定的字段不存在,会先初始化为0,如果该字段对应的 value 值存储的为字符串值,那么该命令会执行出错执行该命令之后,哈希表中字段对应的值
HSCAN key cursor [MATCH pattern] [COUNT count]用于迭代哈希表中的 field-value 对
cursor:游标;
pattern:匹配的模式;
count:指定从数据里返回的数据量,默认值为 10
返回的每个元素都是一个元组,每一个元组元素由一个字段(field)和值(value)组成
HDEL key field1 [field2 ...]用于删除哈希表 key 中的一个或多个字段(field),如果指定的 field 不存在,则忽略返回成功删除字段的数量,不包括被忽略的字段

以上便是 Redis Hash 常用的命令,后续有用到其他的命令的话,会继续更新的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐