Redis命令---Hash(哈希)篇 (超全)
目录
- 1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 如果命令执行成功,返回 OK 。
- 示例
- 2.Redis Hmget 命令 - 获取所有给定字段的值
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。
- 示例
- 3.Redis Hset 命令 - 将哈希表 key 中的字段 field 的值设为 value 。
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
- 示例
- 4.Redis Hgetall 命令 - 获取在哈希表中指定 key 的所有字段和值
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。
- 示例
- 5.Redis Hget 命令 - 获取存储在哈希表中指定字段的值/td>
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。
- 示例
- 6.Redis Hexists 命令 - 查看哈希表 key 中,指定的字段是否存在。
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。
- 示例
- 7.Redis Hincrby 命令 - 为哈希表 key 中的指定字段的整数值加上增量 increment 。
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 执行 HINCRBY 命令之后,哈希表中字段的值。
- 示例
- 8.Redis Hlen 命令 - 获取哈希表中字段的数量
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 哈希表中字段的数量。 当 key 不存在时,返回 0 。
- 示例
- 9.Redis Hdel 命令 - 删除一个或多个哈希表字段
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 被成功删除字段的数量,不包括被忽略的字段。
- 示例
- 10.Redis Hvals 命令 - 获取哈希表中所有值
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。
- 示例
- 11.Redis Hincrbyfloat 命令 - 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
- 简介
- 语法
- 可用版本: >= 2.6.0
- 返回值: 执行 Hincrbyfloat 命令之后,哈希表中字段的值。
- 示例
- 12.Redis Hkeys 命令 - 获取所有哈希表中的字段
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 包含哈希表中所有字段的列表。 当 key 不存在时,返回一个空列表。
- 示例
- 13.Redis Hsetnx 命令 - 只有在字段 field 不存在时,设置哈希表字段的值。
- 简介
- 语法
- 可用版本: >= 2.0.0
- 返回值: 设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 。
- 示例
- 总结
1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。
简介
如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。此命令会覆盖哈希表中已存在的字段。Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN
可用版本: >= 2.0.0
返回值: 如果命令执行成功,返回 OK 。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo" field2 "bar"
OK
redis 127.0.0.1:6379> HGET myhash field1
"foo"
redis 127.0.0.1:6379> HMGET myhash field2
"bar"
2.Redis Hmget 命令 - 获取所有给定字段的值
简介
如果指定的字段不存在于哈希表,那么返回一个 nil 值。Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HMGET KEY_NAME FIELD1...FIELDN
可用版本: >= 2.0.0
返回值: 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HMGET myhash field1 field2 nofield
1) "foo"
2) "bar"
3) (nil)
3.Redis Hset 命令 - 将哈希表 key 中的字段 field 的值设为 value 。
简介
如果字段已经存在于哈希表中,旧值将被覆盖。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。Redis Hset 命令用于为哈希表中的字段赋值 。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE
可用版本: >= 2.0.0
返回值: 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
OK
redis 127.0.0.1:6379> HGET myhash field1
"foo"redis 127.0.0.1:6379> HSET website google "www.g.cn" # 设置一个新域
(integer) 1redis 127.0.0.1:6379>HSET website google "www.google.com" # 覆盖一个旧域
(integer) 0
4.Redis Hgetall 命令 - 获取在哈希表中指定 key 的所有字段和值
简介
在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。Redis Hgetall 命令用于返回哈希表中,所有的字段和值。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HGETALL KEY_NAME
可用版本: >= 2.0.0
返回值: 以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"
5.Redis Hget 命令 - 获取存储在哈希表中指定字段的值/td>
简介
Redis Hget 命令用于返回哈希表中指定字段的值。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HGET KEY_NAME FIELD_NAME
可用版本: >= 2.0.0
返回值: 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。
示例
# 字段存在redis> HSET site redis redis.com
(integer) 1redis> HGET site redis
"redis.com"# 字段不存在redis> HGET site mysql
(nil)
6.Redis Hexists 命令 - 查看哈希表 key 中,指定的字段是否存在。
简介
Redis Hexists 命令用于查看哈希表的指定字段是否存在。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HEXISTS KEY_NAME FIELD_NAME
可用版本: >= 2.0.0
返回值: 如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HEXISTS myhash field1
(integer) 1
redis 127.0.0.1:6379> HEXISTS myhash field2
(integer) 0
7.Redis Hincrby 命令 - 为哈希表 key 中的指定字段的整数值加上增量 increment 。
简介
本操作的值被限制在 64 位(bit)有符号数字表示之内。对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。增量也可以为负数,相当于对指定字段进行减法操作。Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER
可用版本: >= 2.0.0
返回值: 执行 HINCRBY 命令之后,哈希表中字段的值。
示例
redis 127.0.0.1:6379> HSET myhash field1 20
(integer) 1
redis 127.0.0.1:6379> HINCRBY myhash field 1
(integer) 21
redis 127.0.0.1:6379> HINCRBY myhash field -1
(integer) 20
8.Redis Hlen 命令 - 获取哈希表中字段的数量
简介
Redis Hlen 命令用于获取哈希表中字段的数量。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HLEN KEY_NAME
可用版本: >= 2.0.0
返回值: 哈希表中字段的数量。 当 key 不存在时,返回 0 。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HLEN myhash
(integer) 2
9.Redis Hdel 命令 - 删除一个或多个哈希表字段
简介
Redis Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HDEL KEY_NAME FIELD1.. FIELDN
可用版本: >= 2.0.0
返回值: 被成功删除字段的数量,不包括被忽略的字段。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HDEL myhash field1
(integer) 1
redis 127.0.0.1:6379> HDEL myhash field2
(integer) 0
10.Redis Hvals 命令 - 获取哈希表中所有值
简介
Redis Hvals 命令返回哈希表所有字段的值。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HVALS KEY_NAME FIELD VALUE
可用版本: >= 2.0.0
返回值: 一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HVALS myhash
1) "foo"
2) "bar"# 空哈希表/不存在的keyredis 127.0.0.1:6379> EXISTS not_exists
(integer) 0redis 127.0.0.1:6379> HVALS not_exists
(empty list or set)
11.Redis Hincrbyfloat 命令 - 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
简介
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HINCRBYFLOAT KEY_NAME FIELD_NAME INCR_BY_NUMBER
可用版本: >= 2.6.0
返回值: 执行 Hincrbyfloat 命令之后,哈希表中字段的值。
示例
redis 127.0.0.1:6379> HSET myhash field 20.50
(integer) 1
redis 127.0.0.1:6379> HINCRBYFLOAT mykey field 0.1
"20.60"
12.Redis Hkeys 命令 - 获取所有哈希表中的字段
简介
Redis Hkeys 命令用于获取哈希表中的所有字段名。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HKEYS KEY_NAME FIELD_NAME INCR_BY_NUMBER
可用版本: >= 2.0.0
返回值: 包含哈希表中所有字段的列表。 当 key 不存在时,返回一个空列表。
示例
redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HKEYS myhash
1) "field1"
2) "field2"
13.Redis Hsetnx 命令 - 只有在字段 field 不存在时,设置哈希表字段的值。
简介
如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。如果字段已经存在于哈希表中,操作无效。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。Redis Hsetnx 命令用于为哈希表中不存在的的字段赋值 。Redis 哈希(Hash)
语法
redis 127.0.0.1:6379> HSETNX KEY_NAME FIELD VALUE
可用版本: >= 2.0.0
返回值: 设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 。
示例
redis 127.0.0.1:6379> HSETNX myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSETNX myhash field1 "bar"
(integer) 0
redis 127.0.0.1:6379> HGET myhash field1
"foo"redis 127.0.0.1:6379> HSETNX nosql key-value-store redis
(integer) 1redis 127.0.0.1:6379> HSETNX nosql key-value-store redis # 操作无效, key-value-store 已存在
(integer) 0
总结
往期回顾
Redis命令—String篇 (超全)
Redis命令—key篇 (超全)
相关文章:

Redis命令---Hash(哈希)篇 (超全)
目录 1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。简介语法可用版本: > 2.0.0返回值: 如果命令执行成功,返回 OK 。 示例 2.Redis Hmget 命令 - 获取所有给定字段的值简介语法可用版本: > 2.0.0返回值: 一个包含多个给定字段…...

Objects are not valid as a React child (found: object with keys {name}).
在jsx中可以嵌套表达式,将表达式作为内容的一部分,但是要注意,普通对象不能作为子元素;但是数组,react元素对象是可以的 如下:不能将stu这个对象作为子元素放 function App() {const myCal imgStyleconst…...

nodejs业务分层如何写后端接口
这里展示的是在node express 项目中的操作 ,数据库使用的是MongoDB,前期关于express和MongoDB的文章可访问: Nodejs后端express框架 server后端接口操作:通过路由匹配——>调用对应的 Controller——>进行 Service调用——&…...

Windows 7 虚拟机的安装以及解决安装VMVMware tools问题
1.Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 参考:Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 注意:下载官方补丁:Microsoft Update Catalog在智慧联想浏览器中打不开,要在火狐中才能打开下载。 2.win7如…...

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-9PID控制器
本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-9PID控制器) P —— Proportional I —— Integral D —— Derivative 当前误差/过去误差/误差的变化趋势 K p ⋅ e K_{\mathrm{p}}\cdot e Kp⋅e:比…...

SSM养老院综合服务系统----计算机毕业设计
项目介绍 该项目为后台管理项目,分为管理员与护工两种角色; 管理员角色包含以下功能: 管理员登录,个人资料密码管理,用户管理,床位类型管理,床位管理,护工管理,老人管理,咨询登记管理,预约登记管理,老人健康信息管理,费用管理等功能。 护…...

广州求职招聘(找工作)去哪里找比较好
在广州找工作,可以选择“吉鹿力招聘网”这个平台。它是一个号称直接和boss聊的互联网招聘神器,同时,“吉鹿力招聘网”作岗位比较齐全,企业用户也多,比较全面。在“吉鹿力招聘网”历即可投递岗位。 广州找工作上 吉鹿力…...

ARM NEON 指令
NEON指令 按照操作数类型可以分为正常指令、宽指令、窄指令、饱和指令、长指令。 正常指令:生成大小相同且类型通常与操作数向量相同到结果向量。长指令:对双字向量操作数执行运算,生产四字向量到结果。所生成的元素一般是操作数元素宽度到…...

Open3D 最小二乘拟合平面——拉格朗日乘子法
目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接Open3D 最小二乘拟合平面——拉格朗日乘子法。爬虫自重。 一、算法原理 设拟合出的平面方程为: a x + b y +...

Rockchip平台Android应用预安装功能(基于Android13)
Rockchip平台Android应用预安装功能(基于Android13) 1. 预安装应用类型 Android上的应用预安装功能,主要是指配置产品时,根据厂商要求,将事先准备好的第三方应用预置进Android系统。预安装分为以下几种类型: 安装不可卸载应用安…...

vue项目表单使用正则过滤ip、手机号
import useFormValidate from /hooks/useFormValidatesetup(props, { emit }) {const { validateName, validateIPAndPort } useFormValidate()const state reactive({workFaceInfo: props.info?.id ? props.info : {},sysTypeData: props.sysType,formRules: {name: [{req…...
vscode编译调试sln工程
使用msvc工具链 vscode配置调用visual studio的编译和调试环境_vscode用vs-CSDN博客 将vscode打造无敌的IDE(14) tasks.json和launch.json配置详解,随心所欲添加自动化任务_tasks.json详解-CSDN博客 通过命令行使用 Microsoft C 工具集 | Microsoft Learn 编译…...
Android 车联网——CarManager管理器(四)
上篇文章介绍了CarPropertyService 的使用,这一篇我们来看一下 Android Automotive OS 中一些子模块如何使用 CarPropertyManager。 一、管理器调用 ICarImpl 源码位置:/packages/services/Car/service/src/com/android/car/ICarImpl.java @Override public IBinder getC…...

C# OpenCvSharp读取rtsp流录制mp4可分段保存
软件界面: 测试环境: VS2019 .NET Framework 4.7.2 OpencvSharp4.8.0 输入RTSP流地址即可拉取RTSP流,支持抓拍和录制RTSP流视频,且支持支持按固定时间保存,比如我想5分钟保存一个视频,设置保存间隔为30…...
Maven的心脏:深入解析settings.xml配置文件
Maven作为Java世界中最著名的构建工具之一,其灵魂所在无疑是那些配置文件。在这些配置文件中,settings.xml扮演着至关重要的角色。今天,我们就来深入剖析这个Maven的心脏部件,看看它如何为我们的项目搏动生命。 一、Maven settin…...
uni静态资源引入及css图片图标引用规范
1、页面组件引入 单页面中的组件引入需经过导入——注册——使用三个步骤; <template><view><!-- 3.使用组件 --><uni-rate text"1"></uni-rate></view> </template> <script>// 1. 导入组件import un…...

API 开放平台项目(已整理,已废弃)
项目大纲 前端 React 18Ant Design Pro 5.x 脚手架Ant Design & Procomponents 组件库Umi 4 前端框架OpenAPI 前端代码生成 后端 Java Spring BootMySQL 数据库MyBatis-Plus 及 MyBatis X 自动生成API 签名认证(Http 调用)Spring Boot Starter&#…...

魔棒无人直播系统有哪些优势?
随着科技的发展,越来越多新鲜事物的出现,它们代替了我们做很多的事情,开始解放着自己的双手,其中,无人直播的出现,就让直播变得更加简单。 因为是无人直播,所以全程不需要真人出镜,…...

[Flutter]WindowsOS中相关配置
Flutter项目在Windows平台上如何配置 目录 Flutter项目在Windows平台上如何配置 写在开头 正文 1、OS准备 2、编译环境准备 ① 下载AndroidStudio ② 下载dart ③ 下载flutter ④ 下载并安装VS ⑤ 在AS中配置dart和flutter 3、配置中遇到的问题 写在结尾 写在开头…...
[C语言]时间戳
时间戳的概念 时间戳就是定义一个时间点作为0秒, 之后每过一秒依此加一, 将当前的时间戳换算成年月日, 再加上起点, 获得的就是现在时刻的时间. 根据地球时区的偏移, 比如北京时间是东八区, 做一个偏移量的加减. 0起点: 1900年1月1日0时0分0秒. 0偏移地点: 英国伦敦 时间戳…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...