一步一步学习Redis——五大数据类型之哈希(Hash)的相关命令

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 一步一步学习Redis——五大数据类型之哈希(Hash)的相关命令

文章目录:


1.开篇

2.Redis哈希(Hash)的相关命令 

2.1 HSET命令

语法

返回值

2.2 HGET命令 

语法

返回值

2.3 HMSET命令

语法

返回值

2.4 HMGET命令 

语法

返回值

2.5 HSETNX命令

语法

返回值

2.6 HDEL命令

语法

返回值

2.7 HEXISTS命令

语法

返回值

2.8 HKEYS命令

语法

返回值

2.9 HVALS命令 

语法

返回值

2.10 HGETALL命令

语法

返回值

2.11 HLEN命令

语法

返回值

2.12 HINCRBY命令

语法

返回值

2.13 HINCRBYFLOAT命令

语法

返回值

2.14 HSCAN命令

语法

返回值


1.开篇


Redishash是一个 string 类型的 field(字段) value(值)的映射表,hash 特别适合用于存储对象。

Redis中每个 hash 可以存储 232 - 1 键值对(40多亿)。

2.Redis哈希(Hash)的相关命令


序号

命令及描述

1

HDEL key field1 [field2]
删除一个或多个哈希表字段

2

HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。

3

HGET key field
获取存储在哈希表中指定字段的值。

4

HGETALL key
获取在哈希表中指定 key 的所有字段和值

5

HINCRBY key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment

6

HINCRBYFLOAT key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment

7

HKEYS key
获取所有哈希表中的字段

8

HLEN key
获取哈希表中字段的数量

9

HMGET key field1 [field2]
获取所有给定字段的值

10

HMSET key field1 value1 [field2 value2]
同时将多个 field-value (-)对设置到哈希表 key 中。

11

HSET key field value
将哈希表 key 中的字段 field 的值设为 value

12

HSETNX key field value
只有在字段 field 不存在时,设置哈希表字段的值。

13

HVALS key
获取哈希表中所有值。

14

HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。

2.1 HSET命令

Redis Hset 命令用于为哈希表中的字段赋值

如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。

如果字段已经存在于哈希表中,旧值将被覆盖。

语法

redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE

返回值

如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0


2.2 HGET命令 

Redis Hget 命令用于返回哈希表中指定字段的值。

语法

redis 127.0.0.1:6379> HGET KEY_NAME FIELD_NAME

返回值

返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil

2.3 HMSET命令

Redis Hmset 命令用于同时将多个 field-value (字段-)对设置到哈希表中。

此命令会覆盖哈希表中已存在的字段。

如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。

语法

redis 127.0.0.1:6379> HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN

返回值

如果命令执行成功,返回 OK


2.4 HMGET命令 

Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。

如果指定的字段不存在于哈希表,那么返回一个 nil 值。

语法

redis 127.0.0.1:6379> HMGET KEY_NAME FIELD1...FIELDN

返回值

一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。


2.5 HSETNX命令

Redis Hsetnx 命令用于为哈希表中不存在的的字段赋值

如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。

如果字段已经存在于哈希表中,操作无效。

如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。

语法

redis 127.0.0.1:6379> HSETNX KEY_NAME FIELD VALUE

返回值

设置成功,返回 1 如果给定字段已经存在且没有操作被执行,返回 0

2.6 HDEL命令

Redis Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。

语法

redis 127.0.0.1:6379> HDEL KEY_NAME FIELD1.. FIELDN

返回值

被成功删除字段的数量,不包括被忽略的字段。

2.7 HEXISTS命令

Redis Hexists 命令用于查看哈希表的指定字段是否存在。

语法

redis 127.0.0.1:6379> HEXISTS KEY_NAME FIELD_NAME

返回值

如果哈希表含有给定字段,返回 1 如果哈希表不含有给定字段,或 key 不存在,返回 0

2.8 HKEYS命令

Redis Hkeys 命令用于获取哈希表中的所有域(field)。

语法

redis 127.0.0.1:6379> HKEYS key

返回值

包含哈希表中所有域(field)列表。 key 不存在时,返回一个空列表。


2.9 HVALS命令 


Redis Hvals 命令返回哈希表所有域(field)的值。

语法

redis 127.0.0.1:6379> HVALS key

返回值

一个包含哈希表中所有域(field)值的列表。 key 不存在时,返回一个空表。

2.10 HGETALL命令

Redis Hgetall 命令用于返回哈希表中,所有的字段和值。

在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。

语法

redis 127.0.0.1:6379> HGETALL KEY_NAME

返回值

以列表形式返回哈希表的字段及字段值。 key 不存在,返回空列表。

2.11 HLEN命令

Redis Hlen 命令用于获取哈希表中字段的数量。

语法

redis 127.0.0.1:6379> HLEN KEY_NAME

返回值

哈希表中字段的数量。 key 不存在时,返回 0

2.12 HINCRBY命令

Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。

增量也可以为负数,相当于对指定字段进行减法操作。

如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。

如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0

对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。

本操作的值被限制在 64 (bit)有符号数字表示之内。

语法

redis 127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER

返回值

执行 HINCRBY 命令之后,哈希表中字段的值。

2.13 HINCRBYFLOAT命令

Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。

如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0

语法

redis 127.0.0.1:6379> HINCRBYFLOAT key field increment
返回值

执行 Hincrbyfloat 命令之后,哈希表中字段的值。

2.14 HSCAN命令

Redis HSCAN 命令用于迭代哈希表中的键值对。

语法

redis 127.0.0.1:6379> HSCAN key cursor [MATCH pattern] [COUNT count]

·       cursor - 游标。

·       pattern - 匹配的模式。

·       count - 指定从数据集里返回多少元素,默认值为 10

返回值

返回的每个元素都是一个元组,每一个元组元素由一个字段(field) 和值(value)组成。



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
19天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
33 1
|
2月前
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
40 1
|
2月前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
39 1
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
265 3
|
22天前
|
存储 NoSQL Java
Redis命令:列表模糊删除详解
通过本文的介绍,我们详细探讨了如何在Redis中实现列表的模糊删除。虽然Redis没有直接提供模糊删除命令,但可以通过组合使用 `LRANGE`和 `LREM`命令,并在客户端代码中进行模糊匹配,来实现这一功能。希望本文能帮助你在实际应用中更有效地操作Redis列表。
34 0
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
31 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
2月前
|
缓存 NoSQL 测试技术
Redis如何解决频繁的命令往返造成的性能瓶颈!
Redis如何解决频繁的命令往返造成的性能瓶颈!
|
2月前
|
NoSQL Redis 数据安全/隐私保护
Redis 命令
10月更文挑战第15天
28 0
|
存储 NoSQL Redis
Redis学习一(基础入门).
一、前言     Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、key-Value 的数据库、并提供多种语言的API。     通常,Redis 将数据存储于内存中,或被配置为使用虚拟内存。
2519 0
|
2月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
78 6