Redis常用命令——Hash篇

 

  前面我们讲述了String的相关操作命令。本篇文章主要讲解Redis中数据结构Hash的相关操作命令。希望会对你有所帮助。

目录

一、Hash哈希

二、命令

HSET

HGET

HEXISTS

 HDEL

HKEYS

HVALS

HGETALL

HMGET

HLEN

HSETNX

HINCRBY 和 HINCRBYFLOAT

三、小结 


🙋‍♂️ 作者:@Ggggggtm 🙋‍♂️

👀 专栏:Redis 👀

💥 标题:Redis常用命令——Hash篇 💥

 ❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️

一、Hash哈希

  Redis中存储的都是键值对,这些键值对本身就是用哈希的方式来组织的。我们要讲解的哈希是指的键值对中的 value。也就是 key 所对应的 value 的类型是Hash。value的Hash类型可以看作是一个键值对的容器,其中的键又被称为field(于区分 Redis 整体的键值对(key-value)),值被称为value。例如key = "key",value={ {field1, value1 } ,..., {fieldN, valueN } },Redis键值对和哈希类型二者的关系可以用下图来表示。

二、命令

HSET

  HSET是用于设置哈希数据结构中指定字段(field)的值(value)。其基本语法为:

HSET key field value [field value ...]

  使用HSET命令可以完成以下操作:

  • 如果字段field不存在,则创建一个新的字段,并将值设为value。
  • field所对应的value使用是String来存储的。
  • 如果字段field已经存在,则用新值覆盖旧值。

  设置成功后,返回设置filed成功的个数。具体实例如下:

HGET

 HGET命令用于获取存储在哈希数据结构中指定字段的值。其基本语法为:

HGET key field

  其中,key是哈希表的键名,field是要获取值的字段名。

  使用HGET命令可以实现以下操作:

  • 获取指定字段的值。
  • 如果指定字段不存在,返回nil。

  具体实例如下:

HEXISTS

  HEXISTS命令用于检查哈希数据结构中是否存在指定字段。其基本语法为:

HEXISTS key field

  其中,key是哈希表的键名,field是要检查是否存在的字段名。

  使用HEXISTS命令可以实现以下操作:

  • 检查指定字段是否存在于哈希表中。
  • 如果字段存在,则返回1;如果字段不存在,则返回0。

  具体实例如下:

HDEL

  HDEL命令用于从哈希数据结构中删除一个或多个字段。其基本语法为:

HDEL key field1 [field2 ...]

  其中,key是哈希表的键名,field1、field2等是要删除的字段名。

  使用HDEL命令可以实现以下操作:

  • 删除指定哈希表中的一个或多个字段。
  • 返回成功删除的字段数量,不包括那些不存在的字段。

  具体实例如下:

  注意:我们之前学的del命令,是用来删除指定的key,而hdel是用来删除哈希类型中的field的。

HKEYS

 hkeys命令用于获取指定哈希表中所有字段(field)的名称。其基本语法为:

HKEYS key

  其中 key 就是哈希表的键名。具体示例如下:

  注意:这个操作是先根据 key 找到对应的hash,时间复杂度O(1)。然后遍历hash打印出所有的 field,时间复杂度为O(n),这里的n是指的hash中的键值对个数。如果hash中的元素较多时,那么就会使该指令的执行时间过长,导致其他指令得不到快速的执行,进而引起一连串的不良效应。所以该操作是有风险的!

HVALS

  hvals命令用于获取指定哈希表中所有字段的值,与hkeys是相对应的。其基本语法为:

HVALS key

  其中 key 就是哈希表的键名。我们来看一下实例:

  注意:该命令与hkeys命令原理相同,都是有一定的操作风险的!

HGETALL

  hgetall命令用于获取指定哈希表中所有字段和值。可以理解为是hkeys和hvals两者相结合。其基本语法为:

 HGETALL key

  具体实例如下:

  其返回值是每两个为一个键值对,按顺序依次列出。同样,该操作命令的风险是比较大的,谨慎使用!

HMGET

   HMGET是用于同时获取哈希表中多个字段的值。它接受一个键名和一个或多个字段(field)作为参数,并返回与这些字段名对应的值。其基本语法为:

HMGET key field [field ...]

  我们看具体实例:

  前面我们学习了hset就可以一次设置多个field 和 value,但是hget只能一次获取一个field所对应的值。那么有hmset吗?答案是有的。但是我们实际上并不需要该命令。

HLEN

  HLEN是用于获取哈希表中字段数量的命令。其基本语法为:

HLEN key

  返回值就是key中所对应的field的个数。如果key不存在,那么返回0。具体实例如下:

  该指令的时间复杂度为O(1),是不需要遍历了。再插入或者删除指定的field时,会做出相应的统计。

HSETNX

  HSETNX是用于在哈希表中设置字段值的命令,只有在字段不存在时才会设置成功。如果字段已经存在,那么HSETNX命令将不会执行任何操作。语法:

HSETNX key field value

参数说明:

  • key:哈希表的键名。
  • field:要设置数值的字段名。
  • value:要设置的字段值。

  具体实例如下:

HINCRBY 和 HINCRBYFLOAT

  HINCRBY和HINCRBYFLOAT都是Redis中用于对哈希表中的字段值进行递增操作的命令,区别在于前者适用于整数值字段,后者适用于浮点数值字段。

  HINCRBY用于将哈希表中指定字段的整数值按指定增量增加。如果字段不存在,将会被创建并设置为增量值。该命令的语法如下: 

HINCRBY key field increment
  • key:哈希表的键名。
  • field:要递增数值的字段名。
  • increment:要递增的整数值。

  具体实例如下:

  HINCRBYFLOAT用于将哈希表中指定字段的浮点数值按指定增量增加。如果字段不存在,将会被创建并设置为增量值。该命令的语法如下: 

HINCRBYFLOAT key field increment
  • key:哈希表的键名。
  • field:要递增数值的字段名。
  • increment:要递增的浮点数值

  具体实例如下:

三、小结 

   下图为哈希类型表命令的效果、时间复杂度,开发人员可以参考此表,结合自身业务需求和数据大小选择合适的命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring的FactoryBean多例问题

关于spring bean,我们了解的最多的还是单例,而多例bean,除了平时我们自己new的那些多实例外(但不属于IOC管理了),几乎很少能用到,而在spring 层面,FactoryBean刚好是多例的一个体现,…

【介绍下如何在SQL中添加数据】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

淘宝扭蛋机小程序:探索未知,扭出惊喜

在数字时代,我们一直在寻找一种新颖、有趣且充满惊喜的购物方式。淘宝扭蛋机小程序正是为了满足这一需求而诞生的创新之作,它将传统扭蛋机的乐趣与淘宝的丰富商品库完美结合,为您带来前所未有的购物体验。 打破传统,创新玩法 淘…

ABB焊接功能介绍

1.基本配置 1.2配置Robot Ware Arc 2.焊接语句 2.1直线焊接语句 过渡点指令必须位于起弧指令与熄弧指令之间,不能单独使用。 2.2直线焊接示例 2.3圆弧焊接语句 2.4圆弧焊接示例 2.5摆动参数 关于ABB焊接机器人摆动参数设定 一般情况下,主要设置以…

养老院管理系统基于springboot的养老院管理系统java项目

文章目录 养老院管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 养老院管理系统 一、项目演示 养老院管理系统 二、项目介绍 基于springboot的养老院管理系统 角色:超级…

再创佳绩丨达梦数据库一体机荣获2024数字中国创新大赛·信创赛道总决赛一等奖

5月24日,第七届数字中国建设峰会在福州盛大开幕,峰会内容安排包含开幕式、主论坛、分论坛、数字中国创新大赛、现场体验区及成果发布和专业工作会议等。武汉达梦数据库股份有限公司(以下简称达梦数据)受邀参加并在展、会、赛等多个环节深度参与。达梦全栈…

dolphinscheduler standalone安装

官方文档:https://dolphinscheduler.apache.org/en-us/docs/3.1.3/guide/installation/standalone 1.安装(以放在/home为例) 下载见:https://download.csdn.net/download/taotao_guiwang/89311365 tar -xvzf apache-dolphinsche…

pytorch比较操作

文章目录 常用的比较操作1.torch.allclose()2.torch.argsort()3.torch.eq()4.torch.equal()5.torch.greater_equal()6.torch.gt()7.torch.isclose()8.torch.isfinite()9.torch.isif()10.torch.isposinf()11.torch.isneginf()12.torch.isnan()13.torch.kthvalue()14.torch.less_…

NLP技术发展和相关书籍分享

自然语言处理(Natural Language Processing,NLP)是计算机科学领域和人工智能领域的重要研究方向之一,旨在探索实现人与计算机之间用自然语言进行有效交流的理论与方法。它融合了语言学、计算机科学、机器学习、数学、认知心理学等…

外卖系统源码解读:校园外卖APP开发全攻略

外卖系统源码解读:校园外卖APP开发全攻略 今天,小编将深入解读外卖系统的源码,详细介绍如何开发一款功能齐全的校园外卖APP,帮助开发者快速上手,打造出高质量的外卖应用。 一、需求分析 应具备以下基本功能&#xff…

idea的project structure下project [lauguage ]()level 没有java的sdk17选项如何导入

idea的project structure下project lauguage level 没有java的sdk17选项如何导入 别导入了,需要升级idea版本。idea中没有project language level没有17如何添加 - CSDN文库 别听这文章瞎扯淡 2021版本就是没有,直接卸载升级到最新版本就可以了。没办法…

AcWing 2568:树链剖分 ← 线段树+DFS

【题目来源】https://www.acwing.com/problem/content/2570/【题目描述】 给定一棵树,树中包含 n 个节点(编号 1∼n),其中第 i 个节点的权值为 ai。 初始时,1 号节点为树的根节点。 现在要对该树进行 m 次操作&#xf…

央视网视频下载和花屏问题处理

央视网(www.cctv.com)视频下载往往是花屏的,如何处理呢? 如果您是IT技术开发者,那么您可以通过下面步骤自己实现。 用chrome浏览器,F2打开开发者工具,找到当前页面的network 然后找一个接口:https://vdn.a…

文生图模型演进:AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

OC IOS 文件解压缩预览

热很。。热很。。。。夏天的城市只有热浪没有情怀。。。 来吧,come on。。。 引用第三方库: pod SSZipArchive 开发实现: 一、控制器实现 头文件控制器定义: // // ZipRarViewController.h // // Created by carbonzhao on 2…

OTFS系统建模、通信性能分析、信道估计、模糊函数【附MATLAB代码】

文献来源:​微信公众号:EW Frontier OTFS简介 OTFS信道估计 % Clear command window, workspace variables, and close all figures clc; clear all; close all; ​ % Define Eb values in dB EbdB -10:2:10; ​ % Convert Eb values from dB to lin…

【测评】香橙派 AIpro上手初体验

AI毋庸置疑是近年来,热度最高的技术之一,作为一名工程师拥抱新技术的同时不可或缺的需要一块强悍的开发板,香橙派 AIpro除了拥有好看的皮囊之外,还拥有一个有趣且充满魅力的灵魂。作为一位长期活跃在嵌入式开发领域的工程师&#…

OrangePi AIpro (8T)使用体验,性能测试报告

前言 这段时间收到了CSDN和香橙派的邀请,对OrangePi AIpro进行体验测评,在此感谢CSDN对我的信任,也感谢香橙派能做出如此优秀的开发板。 可喜可贺,周三晚上我收到了官方寄出的OrangePi AIpro。出于对国产芯片的好奇&#xff0c…

二分答案思想下的二进制问题

序列合并 题目描述 给定一个长度为 n n n 的非负整数序列 { a n } \{a_n\} {an​},你可以进行 k k k 次操作,每次操作你选择两个相邻的数,把它们合并成它们的按位或。 形式化地,一次操作中,你选择一个下标 i i …

李廉洋:5.29黄金原油持续震荡,今日美盘行情走势分析及策略。

黄金消息面分析:美联储理事鲍曼周二表示,她支持要么先等等再开始放缓缩减资产负债表,要么采取比本月早些时候宣布的更温和的放慢缩表进程。鲍曼认为商业银行准备金水平仍然充足,这让官员们有更多时间来推进缩表进程。“在准备金接…