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)

操作演示:

在这里插入图片描述

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

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

相关文章

2024护网整体工作预案示例

目录 第1章 HW整体工作工作部署 1.1 工作组织架构 1.2 各部门工作职责 1.3 演练期间工作机制 1.3.1 工作汇报机制 1.3.2 应急响应机制 第2章 系统资产梳理整改 2.1 敏感信息梳理整改 2.2 互联网资产发现 2.3 第三方供应商梳理 2.4 业务连接单位梳理 第3…

下载nginx搭建的文件服务器(爬虫)

下载nginx搭建的文件服务器(爬虫) windows版 需要下载python包:pip install requests import requests import re import os#开始访问的url地址,必须以/结尾 index_url "https://www.aaa.com/aaaaa/" #下载到本地的地…

win10显示毫秒-上午-下午及星期几,24小时制

关于毫秒 winr regedit 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced 新建ShowSecondsInSystemClock,编辑1显示,不显示就删了它 然后重启 资源管理器可能有多个全部重启,就可以啦 根据自己喜好…

党建科普3D数字化展馆支持实时更新迭代

3D虚拟策展逐渐成为新时代下的主流方式,深圳华锐视点作为专业的web3d开发公司,具有专业化的3D数字化空间还原能力,能根据企业/个人不同需求和预算,为您打造纯线上虚拟3D艺术展,让您彻底摆脱实体美术馆的限制&#xff0…

面试官:Java文件是如何被加载到内存中的?

面试连环call Java文件是如何被加载到内存中的?Java类的声明周期都有哪些阶段?JVM加载的class文件都有哪些来源?JVM在加载class文件时,何时判断class文件的格式是否符合要求? 类生命周期 一个类从被加载到虚拟机内存…

【计算机体系结构】缓存的false sharing

在介绍缓存的false sharing之前,本文先介绍一下多核系统中缓存一致性是如何维护的。 目前主流的多核系统中的缓存一致性协议是MESI协议及其衍生协议。 MESI协议 MESI协议的4种状态 MESI协议有4种状态。MESI是4种状态的首字母缩写,缓存行的4种状态分别…

【Linux】—Xshell、Xftp安装

文章目录 前言一、下载Xshell、Xftp二、安装Xshell三、使用XShell连接Linux服务器四、修改windows的主机映射文件(hosts文件)五、远程连接hadoop102/hadoop103/hadoop104服务器六、安装Xftp 前言 XShell远程管理工具,可以在Windows界面下来访…

[数据集][目标检测]螺丝螺母检测数据集VOC+YOLO格式2400张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2400 标注数量(xml文件个数):2400 标注数量(txt文件个数):2400 标注…

SpringBoot 整合 Minio 实现文件切片极速上传技术

Centos7安装Minio 创建目标文件夹 mkdir minio使用docker查看目标镜像状况 大家需要注意,此处我们首先需要安装docker,对于相关安装教程,大家可以查看我之前的文章,按部就班就可以,此处不再赘述!&#x…

uniapp入门

一、新建项目 进入到主界面,左上角点击新建——1.项目 输入项目名称,Vue版本选择3 二、创建页面 选中左侧文件目录里的pages文件夹,右键,选择新建页面 1输入名称 2选中“创建同名目录” 3选择模板&…

将json对象转为xml进行操作属性

将json对象转为xml进行操作属性 文章目录 将json对象转为xml进行操作属性前端发送json数据格式写入数据库格式-content字段存储(varchar(2000))Question实体类-接口映射对象QuestionContent 接收参数对象DAO持久层Mapper层Service层Controller控制层接收…

《每天5分钟用Flask搭建一个管理系统》第13章:性能优化

第13章:性能优化 13.1 性能优化的重要性 性能优化确保应用能够处理高并发请求,减少响应时间,提高用户体验和应用的可扩展性。 13.2 Flask缓存机制 缓存是提高Web应用性能的关键技术之一,它可以减少数据库查询次数和服务器计算…

Java 开发环境配置

配置Java开发环境涉及几个主要步骤,包括安装Java Development Kit (JDK)、配置环境变量和选择集成开发环境(IDE)。以下是详细的配置步骤: ### 1. 安装 Java Development Kit (JDK) 1. **下载 JDK**: 访问 Oracle …

完全指南:在Linux上安装和精通Conda

前言 Conda是一个强大的包管理和环境管理工具,特别适用于数据科学和机器学习项目。本文将详细指导你在Linux系统上安装、配置和充分利用Conda的方法。 步骤一:下载和安装Conda 下载安装包: wget https://repo.anaconda.com/miniconda/Minic…

普元EOS学习笔记-低开实现图书的增删改查

前言 在前一篇《普元EOS学习笔记-创建精简应用》中,我已经创建了EOS精简应用。 我之前说过,EOS精简应用就是自己创建的EOS精简版,该项目中,开发者可以进行低代码开发,也可以进行高代码开发。 本文我就记录一下自己在…

Golang中swtich中如何强制执行下一个代码块

switch 语句中的 case 代码块会默认带上 break,但可以使用 fallthrough 来强制执行下一个 case 代码块。 package mainimport ("fmt" )func main() {isSpace : func(char byte) bool {switch char {case : // 空格符会直接 break,返回 false…

2024年6月 | deepin 深度应用商店-应用更新记录

新增应用 序号应用名称depein 系统版本应用分类应用类型1bkViewer 照片浏览器deepin 20.9 deepin V23网络应用wine291助手deepin 20.9 deepin V23编程开发wine3风云CAD转换器deepin 20.9 deepin V23编程开发wine4Disk Savvydeepin 20.9 deepin V23系统工具wine5飞猫盘…

miniconda3 安装jupyter notebook并配置网络访问

由于服务器安装的miniconda3,无jupyter notebook,所以手工安装jupyter notebook 1 先conda 安装相关包 在base 环境下 conda install ipython conda install jupyter notebook 2 生成配置文件 jupyter notebook --generate-config Writing defaul…

Nginx 常用配置与应用

Nginx 常用配置与应用 官网地址:https://nginx.org/en/docs/ 目录 Nginx 常用配置与应用 Nginx总架构 正向代理 反向代理 Nginx 基本配置反向代理案例 负载均衡 Nginx总架构 进程模型 正向代理 反向代理 Nginx 基本配置反向代理案例 负载均衡 Nginx 基本配置…

新人程序员接手丑陋的老代码怎么办?改还是不改......

许多小伙伴在初入职场的时候,都会遇到要接手老代码的情况,那么问题来了,如果老代码十分丑陋,你是改还是不改? 不改吧,心里难受;改吧,指不定会遇到什么情况,比如…… 1.…