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偏移地点: 英国伦敦 时间戳…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
