当前位置: 首页 > news >正文

【Redis】hash数据类型-常用命令

文章目录

  • 前置知识
  • 常用命令
    • HSET
    • HGET
    • HEXISTS
    • HDEL
    • HKEYS
    • HVALS
    • HGETALL
    • HMGET
    • 关于HMSET
    • HLEN
    • HSETNX
    • HINCRBY
    • HINCRBYFLOAT
  • 命令小结

前置知识

redis自身就是键值对结构了,哈希类型是指值本⾝⼜是⼀个键值对结构,形如key="key",value={{field1,value1},...,{fieldN,valueN}}

字符串和哈希类型对⽐

image-20231021164500828

哈希类型中的映射关系通常称为field-value,⽤于区分Redis整体的键值对(key-value),注意这⾥的value是指field对应的值,不是键(key)对应的值,注意value在不同上下⽂的作⽤


常用命令

HSET

设置hash中指定的字段(field)的值(value)

语法:HSET key field value [field value ...] 

时间复杂度:插⼊⼀组field为O(1),插⼊N组field为O(N) 返回值:添加成功的字段(filed-value)的个数

image-20231023114003405

HGET

获取hash中指定字段的值

语法:HGET key field 

返回值:字段对应的值或者nil

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


HEXISTS

判断hash中是否有指定的字段

语法:HEXISTS key field 	

返回值:1表⽰存在,0表⽰不存在

image-20231023114041084


HDEL

删除hash中指定的字段

语法:HDEL key field [field ...]

时间复杂度:删除⼀个元素为O(1).删除N个元素为O(N) 返回值:本次操作删除的字段个数

image-20231023114223197

注意:del删除的是key,hdel删除的是key当中的field字段


HKEYS

获取hash中的所有字段

语法:HKEYS key 

时间复杂度:O(N),N为field的个数(先根据key找到对应的hash,然后再遍历hash => 有一定的风险,因为不知道某个hash当中是否会存在大量的field) 返回值:字段列表

image-20231023114244638


HVALS

获取hash中的所有的值

语法:HVALS key 

时间复杂度:O(N),N为field的个数 返回值:所有的值

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


HGETALL

获取hash中的所有字段以及对应的值

语法:HGETALL key

时间复杂度:O(N),N为field的个数 返回值:字段和对应的值

image-20231023183458208


HMGET

⼀次获取hash中多个字段的值

语法: HMGET key field [field ...] 

时间复杂度:只查询⼀个元素为O(1),查询多个元素为O(N),N为查询元素个数 返回值:字段对应的值或者nil


注意:在使⽤HGETALL时,如果哈希元素个数⽐较多,会存在阻塞Redis的可能。如果开发⼈员只需要获取部分field,可以使⽤HMGET,如果⼀定要获取全部field,可以尝试使⽤HSCAN命令,该命令采⽤渐进式遍历哈希类型 =>敲一次命令遍历一小部分,返回下一次从哪个位置开始遍历,连续执行多次就可以完成整个遍历过程,此时时间就是可控的,不会阻塞redis服务器

image-20231023183741765

此时返回的多个value的顺序和field的顺序是匹配的


关于HMSET

其实有HMSET进行一次设置多个field和value,但是并不需要,因为hset已经支持一次设置多个field和value了


HLEN

获取hash中的所有字段的个数

语法:LEN key 

时间复杂度:O(1) 返回值:字段个数

image-20231023183634248


HSETNX

在字段(field)不存在的情况下,设置hash中的字段和值,如果存在,则失败

语法:HSETNX key field value 

返回值:1表⽰设置成功,0表⽰失败 时间复杂度:O(1)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


HINCRBY

将hash中字段对应的数值添加指定的值

语法:HINCRBY key field increment   #increment只能是整数(正数  负数  0),但是不能是浮点数

返回值:该字段变化之后的值 时间复杂度:O(1)

image-20231023183836478

HINCRBYFLOAT

语法:HINCRBYFLOAT key field increment			本质是HINCRBY的浮点数版本

返回值:该字段变化之后的值 时间复杂度:O(1)

image-20231023183957316


命令小结

image-20231021165557738

相关文章:

【Redis】hash数据类型-常用命令

文章目录 前置知识常用命令HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGET关于HMSETHLENHSETNXHINCRBYHINCRBYFLOAT 命令小结 前置知识 redis自身就是键值对结构了,哈希类型是指值本⾝⼜是⼀个键值对结构,形如key"key",value{{field1…...

【大数据】Apache NiFi 数据同步流程实践

Apache NiFi 数据同步流程实践 1.环境2.Apache NIFI 部署2.1 获取安装包2.2 部署 Apache NIFI 3.NIFI 在手,跟我走!3.1 准备表结构和数据3.2 新建一个 Process Group3.3 新建一个 GenerateTableFetch 组件3.4 配置 GenerateTableFetch 组件3.5 配置 DBCP…...

git怎么使用 拉取代码

废话不多说 直接开干 Git 是一款十分实用的版本控制工具,非常方便地管理代码的变更。但是,在使用 Git 过程中,不可避免地会遇到一些问题。其中,删除分支是一个常见的问题。 查看引用历史记录: git reflog找到你删除的…...

Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出

本心、输入输出、结果 文章目录 Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出前言三星声称库克相关图片弘扬爱国精神 Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出 编辑:简简单…...

数据结构-双向链表

1.带头双向循环链表: 前面我们已经知道了链表的结构有8种,我们主要学习下面两种: 前面我们已经学习了无头单向非循环链表,今天我们来学习带头双向循环链表: 带头双向循环链表:结构最复杂,一般用…...

CV计算机视觉每日开源代码Paper with code速览-2023.11.6

精华置顶 墙裂推荐!小白如何1个月系统学习CV核心知识:链接 点击CV计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【点云3D目标检测】(NeurIPS2023)…...

GB28181学习(十五)——流传输方式

前言 基于GB/T28181-2022版本,实时流的传输方式包括3种: UDPTCP被动TCP主动 UDP 流程 注意: m字段指定传输方式为RTP/AVP; 抓包 SIP服务器发送INVITE请求; INVITE sip:xxx192.168.0.111:5060 SIP/2.0 Via: SIP…...

【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

📮1.初识git Git 原理与使用 课程⽬标 • 技术⽬标:掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义 • 技术⽬标:掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操…...

Vue 3 中,watch 和 watchEffect 的区别

结论先行: watch 和 watchEffect 都是监听器,都是用来监听响应式数据的变化并执行相应操作。区别是: watch:需要指明要监听的数据,而且在回调函数中可以获取到属性变化的前后值; 适用于需要精确控制监视…...

鲜花展示服务预约小程序的效果如何

鲜花产品的市场需求度非常高,互联网深入各个行业,很多鲜花商家都会通过线上建立平台实现产品销售、获客引流、转化复购、生意增长等,当然除了搭建鲜花商城小程序外,对鲜花供应商及门店还有展示预约方面的需求。 通过【雨科】平台可…...

Linux下多个盘符乱的问题处理

参考文档: linux下man fstab命令查看帮助,有一段说明,可以使用UUID,或者LABEL 来绑定盘。这里使用UUID来绑定 Instead of giving the device explicitly, one may indicate the filesystem that is to be mounted by its UUID …...

uniapp小程序使用web-view组件页面分享后,点击没有home小房子解决办法

uniapp小程序使用web-view组件页面分享后,点击没有home小房子解决办法 小程序 :IOS 测试正常, 安卓 不显示home 微信小程序使用的是全局自定义导航,通过首页 banner 跳转到一个 web-view 页面,展示官网。 web-view 页…...

SLAM_语义SLAM相关论文

目录 1. 综述 2. 相关文章 Probabilistic Data Association for Semantic SLAM VSO:Visual Semantic Odometry 语义信息分割运动物体...

【技巧】并发读取Mysql数据保证读取到的数据不重复

【技巧】并发读取Mysql数据保证读取到的数据不重复 使用场景: 并发场景下, 保证不获取到重复的数据 思路: 先通过 MYSQL锁 去占位打标识,然后再去取数据 相当于几个人抢蛋糕, A先把蛋糕打上记号 蛋糕是A的, 然后再慢慢吃 表结构 表 t_userid name val used_flag 是否使用…...

Lavarel异步队列的使用

系统为window 启动队列&#xff1a; php artisan queue:listen设置队列类 .env文件需设置&#xff1a;QUEUE_CONNECTIONredis <?phpnamespace App\Jobs;use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Disp…...

JVM知识分享(PPT在资源里)

一、前言 1.自动内存管理 有句经典的话是这样说&#xff0c;Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的高墙&#xff0c;墙外面的人想进去&#xff0c;墙里面的人却想出来。对于Java程序员来说&#xff0c;在虚拟机自动内存管理机制的帮助下&#xff0c;不再需要…...

整合Salesforce Org需要避免的3大风险

管理多个Salesforce实例是成长型企业可能遇到的场景&#xff0c;每个Salesforce实例都包含可能需要整合的关键业务数据和流程。 除了整合&#xff0c;组织可能会在不同的发展阶段采用Salesforce(例如CRM、服务、运营)。整合的最终结果是多个Salesforce实例被统一&#xff0c;并…...

viple进阶3:打印不同形状的三角形

&#xff08;1&#xff09;题目&#xff1a;打印实心的三角形&#xff08;正三角&#xff09; 第一步&#xff1a;观察图形。首行是1颗星&#xff0c;其余的每一行都比上一行多1颗星&#xff1b;其次&#xff0c;每一行的星号数和行数值相等&#xff0c;第一行有1颗星&#xff…...

pytest+yaml实现接口自动化框架

前言 httprunner 用 yaml 文件实现接口自动化框架很好用&#xff0c;最近在看 pytest 框架&#xff0c;于是参考 httprunner的用例格式&#xff0c;写了一个差不多的 pytest 版的简易框架 项目结构设计 项目结构完全符合 pytest 的项目结构&#xff0c;pytest 是查找 test_.…...

编译器使用优化后出现的busfault

遇到的问题&#xff1a; 未开优化是正常执行&#xff0c;打开优化&#xff0c;无法运行&#xff0c;定位到异常语句 //ADC_REG 是ADC结果寄存器地址 uint32 adc *(uint32 *)ADC_REG; uint32 temp adc&0xffff;未优化汇编代码 //uint32 adc *(uint32*)ADC_REG; MOVW R…...

rebase current onto selected作用

rebase current onto selected作用 "rebase current onto selected"是一个版本控制工具中的命令&#xff0c;通常用于将当前分支的修改合并到已选定的分支中&#xff0c;以保持代码库的整洁性和可维护性。 具体来说&#xff0c;这个命令会将当前分支的提交历史记录…...

深度学习入门

全连接批量归一化 目的是&#xff1a;只有一个学习率&#xff0c; 通过归一化&#xff0c;让所有的 x i x_i xi​具有一样的分布&#xff0c;则对每个参数 w i w_i wi​梯度的作用是相当的实现是&#xff1a;实际上是在全连接中增加了两个节点 γ \gamma γ, β \beta β 卷积…...

嵌入式图像处理机器视觉库YMCV使用

YMCV入门 一个可以免操作系统的机器视觉库&#xff0c;由c语言编写可以跑在单片机上。项目地址https://gitee.com/yao_mi/ymcv 使用的时候&#xff0c;可以参考他们的教程和demo&#xff0c;建议先看教程&#xff0c;上面有架构说明。 一个典型的应用就是渲染器&#xff0c;需…...

vscode设置pycharm中的项目路径和debug方法

真大佬在这 真大佬在这 必须给大佬star 命令行运行&#xff1a; export PYTHONPATH:pwd:/home/bennie/bennie/bennie_project/AI_Lab python main.py 当关闭此命令行时&#xff0c;临时路径会清除&#xff0c;可以将上述export的整条语句&#xff0c;加入~/.bashrc中 该命令中…...

10-27 maven概念

maven maven的概念模型: 项目对象模型(POM: Project object Model)&#xff0c;一组标准集合: pom.xml 依赖管理系统(Dependency Management System) 项目生命周期(Project Lifecycle) 项目对象模型&#xff1a; 把项目当成一个对象&#xff0c;描述这个项目&#xff0c;使用p…...

SQL审计是什么意思?目的是什么?有什么好处?

很多刚入行的运维小伙伴对于SQL审计不是很了解&#xff0c;不知道其是什么意思&#xff1f;使用SQL审计的目的是什么&#xff1f;使用SQL审计的好处有哪些&#xff1f;这里我们大家就来一起聊聊&#xff0c;仅供参考哈&#xff01; SQL审计是什么意思&#xff1f; 【回答】&…...

CSS 网页布局

网页布局有很多种方式&#xff0c;一般分为以下几个部分&#xff1a;头部区域、菜单导航区域、内容区域、底部区域&#xff1a; 1&#xff09;、头部区域位于整个网页的顶部&#xff0c;一般用于设置网页的标题或者网页的logo。 <style> body { margin: 0; } /* 头部样…...

智慧燃气管网监测系统功能简要介绍

关键词&#xff1a;智慧燃气、智慧燃气管网、智慧燃气管网监测、智慧燃气管网监测系统、智慧燃气解决方案 燃气作为城市主要燃料&#xff0c;遍布整个城区&#xff0c;其安全运行直接关系到居民的生命安全&#xff0c;不可不重视。 智慧燃气中的GIS和SCADA系统&#xff0c;可…...

深度解析:如何开发一对一交友App的关键要素和流程

在数字化时代&#xff0c;人们越来越倾向于使用交友App来寻找自己的伴侣或交流朋友。而一对一交友App的开发成为了创业者们追逐的热门领域。本文将深入探讨一对一交友App开发的关键要素和流程&#xff0c;帮助您在竞争激烈的市场中脱颖而出。 关键要素&#xff1a;打造独特的用…...

ClickHouse 学习之从高级到监控以及备份(二)

第 一 部分 高级篇 第 1 章 Explain 查看执行计划 在 clickhouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能可以看到&#xff0c;并且只能真正执行 sql&#xff0c;在执行日志里面查看。在 20.6 版本引入了原生的执行计划的语法。在 20.6.3 版本成…...