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

Redis中hash类型的操作命令(命令的语法、返回值、时间复杂度、注意事项、操作演示)

文章目录

  • 字符串和哈希类型相比
  • hset 命令
  • hget 命令
  • hexists
  • hdel
  • hkeys
  • hvals
  • hgetall
  • hmget
  • hlen
  • hsetnx
  • hincrby
  • hincrbyfloat

字符串和哈希类型相比

假设有以下一种场景:现在要在 Redis 中存储一个用户的基本信息(id=1、name=zhangsan、age=17),下图表示使用字符串类型进行存储和使用哈希类型进行存储的区别:

在这里插入图片描述

注意:在 Redis 中,“键” 称为 key,“值” 称为 value,如果value 的类型是哈希类型,则 “键” 称为 field,“值” 称为 value

在这里插入图片描述

hset 命令

设置 hash 中指定 “键”(field) 的值

语法:hset key field value [field value……]

返回值:添加的 field-value 的个数

时间复杂度:O(k),因为插入时,可以插入多个,所以,k 表示插入的键值对(field-value) 的个数

操作演示:

在这里插入图片描述

hget 命令

获取 hash 中指定 “键”(field) 的值

语法:hget key field

返回值:指定键(field)的值

时间复杂度:O(1)

操作演示:

在这里插入图片描述

hexists

判断 hash 中是否存在指定的 field

语法:hexists key field

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

时间复杂度:O(1)

操作演示:

在这里插入图片描述

hdel

删除 hash 中指定的键(field)

语法:hdel key filed [filed……]

返回值:成功删除field的个数

时间复杂度:O(k),k 表示删除的键值对(field-value) 的个数

操作演示:

在这里插入图片描述

hkeys

获取哈希中所有的 field

语法:hkeys key

返回值:所有的键(field)

时间复杂度:O(N)

操作演示:

在这里插入图片描述

注意:这个操作要慎重使用,因为,如果field非常多话,那么就可能会造成 Redis 服务器阻塞

hvals

获取哈希中所有键(field)的值

语法:hvals key

返回值:所有的字段的值

时间复杂度:O(N),N表示field个数

操作演示:

在这里插入图片描述

注意:这个操作要慎重使用,因为,如果field非常多话,那么就可能会造成 Redis 服务器阻塞

hgetall

获取 hash 中所有的字段(field)及其对应的值

语法:hgetall key

返回值:所有的字段及其值

时间复杂度:O(N)

操作演示:

在这里插入图片描述

注意:返回值是一个字段一个值相对着,同时呢,这也是个危险的操作,如果字段特别多的情况下,就可能使 Redis 阻塞

hmget

一次获取 hash 中多个字段(field)的值

语法:hmget key field [field……]

返回值:指定字段的值

时间复杂度:O(k),k为指定的字段的数量

操作演示:

在这里插入图片描述

hlen

获取哈希中字(field)段的个数

语法:hlen key

返回值:字段的个数

时间复杂度:O(1),这里的个数不需要遍历计算,在内部有一个变量存储了元素个数

操作演示:

在这里插入图片描述

hsetnx

在字段不存在的情况下,设置字段和值

语法:hsetnx key field value

返回值:0 表示设置失败,1 表示设置成功

时间复杂度:O(1)

操作演示:

在这里插入图片描述

hincrby

将 hash 中字段(field)对应的值添加指定的值

语法:hincrby key field num

返回值:返回添加成功后的值

时间复杂度:O(1)

操作演示:

在这里插入图片描述

hincrbyfloat

hincrby 的浮点数版本,如果 field 的值是浮点数,对浮点数进行加减时,使用该命令。

语法:hincrbyfloat key field num

返回值:返回添加成功后的值

时间复杂度:O(1)

操作演示:

在这里插入图片描述

相关文章:

Redis中hash类型的操作命令(命令的语法、返回值、时间复杂度、注意事项、操作演示)

文章目录 字符串和哈希类型相比hset 命令hget 命令hexistshdelhkeyshvalshgetallhmgethlenhsetnxhincrbyhincrbyfloat 字符串和哈希类型相比 假设有以下一种场景:现在要在 Redis 中存储一个用户的基本信息(id1、namezhangsan、age17),下图表示使用字符串…...

UE5基本操作(二)

文章目录 前言相机的移动速度修改默认地图使用初学者内容包文件夹结构 总结 前言 在我们的上一篇文章中,我们已经介绍了一些Unreal Engine 5(UE5)的基本操作。UE5是一款强大的游戏开发引擎,它提供了许多工具和功能,使…...

React Navigation 和 Expo Router

React Navigation 是 React Native 社区最常用的导航库,其具有高度可定制性且性能良好的特性。它提供了一系列导航器(如堆栈导航器、标签导航器、抽屉导航器等),可以满足绝大多数的页面导航需求。 Expo Router 是 Expo 官方最新发…...

如何使用python网络爬虫批量获取公共资源数据教程?

原文链接:如何使用python网络爬虫批量获取公共资源数据教程?https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608240&idx4&snef281f66727afabfaae2066c6e92f792&chksmfa826657cdf5ef41571115328a09b9d34367d8b11415d5a5781dc4c…...

常见位运算总结

1.基础位运算 左移 &#xff08;<<&#xff09;: 最左侧位不要了, 最右侧补 0 右移&#xff08;>>&#xff09;: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1) 按位取反&#xff08;~&#xff09;&#xff1a;如果该位为 0 则转为 1, 如果该位为 1 则转为…...

自动化任务工具 -- zTasker v1.94 绿色版

软件简介 zTasker 是一款功能强大的自动化任务管理软件&#xff0c;以其简洁易用、一键式操作而著称。软件体积小巧&#xff0c;启动迅速&#xff0c;提供了超过100种任务类型和30多种定时/条件执行方法&#xff0c;能够满足用户在自动化方面的多样化需求。 zTasker 支持定时任…...

mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>

文章目录 引言I 使用xml 原生转义的方式进行转义II 使用 <![CDATA[ 内容 ]]>引言 应用场景:查询时间范围 背景:在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 <![CDATA[]]> 比 转义符 来的繁琐 <![CDATA[]]> 表示xml解析器忽略…...

UE5的基本操作

涵盖了从建模、快捷键使用、界面操作到性能分析等多个方面&#xff0c;以下是一些关键点和技巧&#xff1a;12 建模操作&#xff1a; 使用Shift5切换到建模模式&#xff0c;可以通过Shapes创建基本图元如立方体、球体等。 利用Create面板中的工具&#xff0c;如polyext自由创…...

C++ 实现学生成绩管理系统

C 实现学生成绩管理系统 思路&#xff1a; 定义 Student 类&#xff0c;包含学生的基本信息和成绩。实现添加学生、删除学生、修改成绩、显示所有学生成绩和查找学生的功能。使用向量&#xff08;vector&#xff09;存储学生信息。 #include <iostream> #include <…...

Elasticsearch 第四期:搜索和过滤

序 2024年4月&#xff0c;小组计算建设标签平台&#xff0c;使用ES等工具建了一个demo&#xff0c;由于领导变动关系&#xff0c;项目基本夭折。其实这两年也陆陆续续接触和使用过ES&#xff0c;两年前也看过ES的官网&#xff0c;当时刚毕业半年多&#xff0c;由于历史局限性导…...

力扣1124.表现良好的最长时间段

力扣1124.表现良好的最长时间段 哈希表存最小的下标 当s[i] > 0 那么他到头可以构成一个合法时间段否则 找到之前的 s[i] - 1 的下标&#xff1a; 因为连续的前缀和一定只相差1若想算更小的s[i] - 2,s[i] - 3…一定会先算到s[i] - 1那么这些更小数必然在 s[i]−1 首次出现的…...

算法训练营day67

题目1&#xff1a; #include <iostream> #include <vector> #include <string> #include <unordered_set> #include <unordered_map> #include <queue>using namespace std;int main() {string beginStr, endStr;int n;cin >> n;ci…...

人工智能--图像语义分割

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a;专业知识 ​ 文章目录 &#x1f349;引言 &#x1f349;介绍 &#x1f348;工作原理 &#x1f34d;数据准备 &#x1f34d;特征提取 &#x1f34d;像素分…...

fl studio20和21用哪一个好?FL-Chan from FL Studio欣赏

最近接到很多小伙伴的私信&#xff0c;都在问我平时会使用哪些音乐软件&#xff0c;能不能给一些参考。其实每个人的使用习惯不一样&#xff0c;需求也不一样。以DAW为例&#xff0c;有些人就是喜欢FL Studio&#xff0c;有些人吹爆Studio One&#xff0c;还有些人习惯使用Cuba…...

OpenCV直方图计算函数calcHist的使用

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 功能描述 图像的直方图是一种统计表示方法&#xff0c;用于展示图像中不同像素强度&#xff08;通常是灰度值或色彩强度&#xff09;出现的频率分布。具体来说…...

09 docker 安装tomcat 详解

目录 一、安装tomcat 1. tomcat镜像的获取 2. docker创建容器实列 3. 访问测试 404错误 4. 解决方案 5. 使用免修改版容器镜像 5.1. 运行实列的创建 5.2. 出现问题及解决&#xff1a; 6. 验证 OK 一、安装tomcat 1. tomcat镜像的获取 docker search tomcat #docker …...

44.实现管理HOOK点的链表对象

上一个内容&#xff1a;43.实现HOOK接管寄存器数据 以 43.实现HOOK接管寄存器数据 它的代码为基础进行修改 首先创建一个类 这里创建的名为HOOKPOINT.h HOOKPOINT.cpp文件里面的内容 #include "pch.h" #include "HOOKPOINT.h"HOOKPOINT::HOOKPOINT() {…...

Unity小知识

1.当我们把摄像机的内容渲染到RenderTexture上而不是屏幕上时,那么相机的Aspect默认会设置成和RenderTexture的分辨率一样.不过最终如果把RenderTexture作为贴图贴到模型上去的时候还是会被UV拉伸和缩小的。 2.要想自定义UnityPackage的内容&#xff0c;只要找到UnityProject/L…...

【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术

标题&#xff1a;【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术 Jupyter Notebook是一个流行的开源Web应用程序&#xff0c;允许用户创建和共享包含实时代码、方程、可视化和解释性文本的文档。而Git是一个广泛使用的分布式版本控制系统&#xff0c;用于跟…...

Python开发者必看:内存优化的实战技巧

更多Python学习内容&#xff1a;ipengtao.com Python是一种高级编程语言&#xff0c;以其易读性和强大的功能而广受欢迎。然而&#xff0c;由于其动态类型和自动内存管理&#xff0c;Python在处理大量数据或高性能计算时&#xff0c;内存使用效率可能不如一些低级语言。本文将介…...

RePKG:解锁Wallpaper Engine壁纸资源的三大核心功能

RePKG&#xff1a;解锁Wallpaper Engine壁纸资源的三大核心功能 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经看着Wallpaper Engine里精美的动态壁纸&#xff0c;想要提…...

【架构实战】数据库分库分表实战

一、为什么需要分库分表 当数据量超过单机数据库的承载能力时&#xff0c;分库分表成为必然选择&#xff1a; 单库数据量过亿&#xff1a;查询性能急剧下降单表数据量过大&#xff1a;索引效率降低&#xff0c;DML操作变慢连接数耗尽&#xff1a;数据库连接成为稀缺资源存储空间…...

VideoAgentTrek-ScreenFilter快速部署:基于Docker与ComfyUI的可视化工作流搭建

VideoAgentTrek-ScreenFilter快速部署&#xff1a;基于Docker与ComfyUI的可视化工作流搭建 你是不是也对那些能自动处理视频、实现智能过滤的AI模型感到好奇&#xff0c;但又觉得命令行操作太复杂&#xff0c;参数调整像在猜谜&#xff1f;别担心&#xff0c;今天我们就来聊聊…...

计算机毕业设计springboot基于的养老平台的设计与实现 SpringBoot架构下智慧养老综合服务系统的设计与实现 基于Java的社区养老数字化管理平台开发

计算机毕业设计springboot基于的养老平台的设计与实现&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。我国正加速步入老龄化社会&#xff0c;老年人口规模持续扩大&#xff0c;传…...

Chatbox 连接火山引擎 ModelNotOpen 实战指南:从零搭建到生产环境部署

作为一名开发者&#xff0c;你是否也曾对构建一个能与自己实时对话的AI应用心驰神往&#xff1f;想象一下&#xff0c;一个能听懂你说话、理解你意图、并用自然声音回应你的数字伙伴。这听起来像是未来科技&#xff0c;但实际上&#xff0c;利用现有的强大工具&#xff0c;我们…...

Qwen2.5-7B-Instruct惊艳表现:中文古诗创作+格律校验+背景知识延伸

Qwen2.5-7B-Instruct惊艳表现&#xff1a;中文古诗创作格律校验背景知识延伸 1. 项目简介 今天要给大家介绍的是一个让人眼前一亮的大模型应用——基于Qwen2.5-7B-Instruct打造的智能对话服务。这个项目可不是普通的聊天机器人&#xff0c;而是专门为处理复杂文本任务设计的高…...

AI元人文构想:从自感养护到伦理中间件——一种智能时代的人文回应

AI元人文构想&#xff1a;从自感养护到伦理中间件——一种智能时代的人文回应---引言&#xff1a;技术时代的人文焦虑智能算法的深度嵌入&#xff0c;正在重塑人类感知、判断与意义生成的方式。推荐系统预判我们的欲望&#xff0c;社交平台定义我们的关系&#xff0c;大语言模型…...

《Linux 是怎样工作的》第 3 章 进程管理

本章完整拆解了 Linux 进程从创建 → 执行 → 结束的全生命周期&#xff0c;深入剖析fork()、execve()、_exit()的底层实现、内存模型与工程实践&#xff0c;是理解 Linux 多任务、调度与内存管理的核心基础。一、3.2 fork() 函数&#xff1a;进程的复制创建1. 核心定义与设计思…...

计算机毕业设计springboot基于的乡村有机产品交易平台的设计与实现 基于Spring Boot的农特产品线上购销管理系统 利用Spring Boot构建的乡村绿色农产品电商服务平台

计算机毕业设计springboot基于的乡村有机产品交易平台的设计与实现&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着互联网技术的深度普及与电子商务的蓬勃发展&#xff0c;消…...

俄罗斯莫斯科电子烟展:跟团公司高性价比选择策略拆解

对于想开拓俄罗斯市场的电子烟企业来说&#xff0c;俄罗斯莫斯科电子烟展是不可错过的出海窗口&#xff0c;但行业信息杂乱、代理鱼龙混杂的现状&#xff0c;让很多企业陷入“选便宜还是选靠谱”的两难。选对跟团公司&#xff0c;不仅能节省成本&#xff0c;更能直接决定参展效…...