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偏移地点: 英国伦敦 时间戳…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...