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

速通Redis基础(二):掌握Redis的哈希类型和命令

目录

Redis 哈希类型简介

Redis 哈希命令

HSET

HGET

HEXISTS 

HDEL 

HKEYS 

HVALS 

HGETALL

HMGET 

 HLEN

HSETNX 

​编辑 

HINCRBY  

HINCRBYFLOAT 

Redis的哈希类型命令小结


Redis 是一种高性能的键值存储数据库,支持多种数据类型,其中之一就是哈希(Hash)。哈希是一种键值对的集合,适合存储对象的属性或配置参数等信息。在本文中,我们将深入探讨 Redis 的哈希类型及其相关命令。

Redis 哈希类型简介

哈希类型是 Redis 的一种数据结构,它以键值对的方式存储多个字段和对应的值,每个字段都是一个字符串。哈希适用于存储具有多个属性的对象,例如用户信息、产品属性、配置参数等。哈希类型的键可以是字符串,但字段名必须是唯一的。

下面是一个示例:

HMSET user:1 username "john" age 30 email "john@example.com"

在上面的例子中,我们创建了一个名为 user:1 的哈希类型,它包含了用户名、年龄和电子邮件地址这三个字段和对应的值。

接下来,让我们了解一些常用的 Redis 哈希命令。

Redis 哈希命令

HSET

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

语法:

HSET key field value [field value ...]

时间复杂度:插入一组 field 为 O(1), 插入 N 组 field 为 O(N)

返回值:添加的字段的个数。

HGET

获取 hash 中指定字段的值。

语法:

HGET key field

HGET key field

时间复杂度:O(1)

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

示例:

 


HEXISTS 

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

语法:

HEXISTS key field

时间复杂度:O(1)

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

示例:

HDEL 

删除 hash 中指定的字段。

语法:

HDEL key field [field ...]

时间复杂度:删除⼀个元素为 O(1),删除 N 个元素为 O(N)

返回值:本次操作删除的字段个数。

示例:

HKEYS 

获取 hash 中的所有字段。

语法:

HKEYS key

时间复杂度:O(N), N 为 field 的个数

返回值:字段列表。

HVALS 

获取 hash 中的所有的值。

语法:

 HVALS key

时间复杂度:O(N), N 为 field 的个数

返回值:所有的值。

示例:

HGETALL

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

语法:

HGETALL key

时间复杂度:O(N), N 为 field 的个数

返回值:字段和对应的值。

示例:

HMGET 

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

语法:

HMGET key field [field ...]

时间复杂度:只查询⼀个元素为 O(1), 查询多个元素为 O(N), N 为查询元素个数

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

示例:

 HLEN

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

语法:

HLEN key

时间复杂度:O(1)

返回值:字段个数。

示例:

HSETNX 

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

语法:

HSETNX key field value

时间复杂度:O(1)

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

示例:

 
HINCRBY  

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

语法:

HINCRBY key field increment

时间复杂度:O(1)

返回值:该字段变化之后的值。

示例:

HINCRBYFLOAT 

HINCRBY 的浮点数版本。

语法:

HINCRBYFLOAT key field increment

时间复杂度:O(1)

返回值:该字段变化之后的值。

Redis的哈希类型命令小结

命令执行效果时间复杂度
hset key field value设置值O(1)
hget key field获取值O(1)
hdel key field [field ...]删除 fieldO(k), k 是 field 个数
hlen key计算 field 个数O(1)
hgetall key获取所有的 field-valueO(k), k 是 field 个数
hmget field [field ...]批量获取 field-valueO(k), k 是 field 个数
hmset field value [field value ...]批量获取 field-valueO(k), k 是 field 个数
hexists key field判断 field 是否存在O(1)
hkeys key获取所有的 fieldO(k), k 是 field 个数
hvals key获取所有的 valueO(k), k 是 field 个数
hsetnx key field value设置值,但必须在 field 不存在时才能设置成功O(1)
hincrby key field n对应 field-value +nO(1)
hincrbyfloat key field n对应 field-value +nO(1)
hstrlen key field计算 value 的字符串长度O(1)

制作不易,希望大家多多支持噢~~🤗

相关文章:

速通Redis基础(二):掌握Redis的哈希类型和命令

目录 Redis 哈希类型简介 Redis 哈希命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX ​编辑 HINCRBY HINCRBYFLOAT Redis的哈希类型命令小结 Redis 是一种高性能的键值存储数据库,支持多种数据类型,其中之…...

WebDAV之π-Disk派盘 + 书藏家

书藏家是一款书籍收藏的软件,对于喜欢阅读书籍的用户来说非常友好,记录你所阅读的书籍内容,对你所阅读的书籍内容进行全方位的管理,并且支持多种录入的方式,不管是实体书籍还是网络书籍都能够进行更为有效的管理;内置WebDAV 模块,更加便利的整理自己的文件资源;书藏家的…...

香港Web3.0生态现状

目前香港Web3.0生态正在快速发展。香港政府和金融机构正在积极推动Web3.0生态的建设,以推动数字经济和智慧城市的发展。香港政府已经发布了有关虚拟资产发展的政策宣言,鼓励和监管并重,加大力度推动虚拟资产产业向前发展。同时,香…...

LLMs之BELLE:源码解读(sft_train.py文件)

LLMs之BELLE:源码解读(sft_train.py文件) 目录 源码解读(sft_train.py文件) # 1、解析命令行参数,包括模型参数、数据参数和训练参数。...

【UE5 Cesium】17-Cesium for Unreal 建立飞行跟踪器(2)

目录 效果 步骤 一、飞机沿航线飞行 二、通过切换相机实现在不同角度观察飞机飞行 效果 步骤 一、飞机沿航线飞行 先去模型网站下载一个波音737飞机模型 然后将下载好的模型导入到UE项目中,导入时需要勾选“合并网格体”(导入前最好在建模软件中将…...

【ElasticSearch】基于 Java 客户端 RestClient 实现对 ElasticSearch 索引库、文档的增删改查操作,以及文档的批量导入

文章目录 前言一、对 Java RestClient 的认识1.1 什么是 RestClient1.2 RestClient 核心类:RestHighLevelClient 二、使用 Java RestClient 操作索引库2.1 根据数据库表编写创建 ES 索引的 DSL 语句2.2 初始化 Java RestClient2.2.1 在 Spring Boot 项目中引入 Rest…...

【Node.js】stream 流模块

流是一种抽象的数据结构。从键盘输入到应用程序就是标准输入流(stdin)。应用程序把字符一个一个输出到显示器上叫做:标准输出流(stdout)。 流的特点是数据是有序的,而且必须依次读取,或者依次写…...

【LeetCode】——链式二叉树经典OJ题详解

主页点击直达:个人主页 我的小仓库:代码仓库 C语言偷着笑:C语言专栏 数据结构挨打小记:初阶数据结构专栏 Linux被操作记:Linux专栏 LeetCode刷题掉发记:LeetCode刷题 算法头疼记:算法专栏…...

代码注释对于程序员重要吗?

程序员对代码注释可以说是又爱又恨又双标……你是怎么看待程序员不写注释这一事件的呢? 代码注释的重要性 代码注释是指在程序代码中添加的解释性说明,用于描述代码的功能、目的、使用方法等。代码注释对于程序的重要性主要体现在以下几个方面&#x…...

OpenHamony开发笔记一:在HarmonyOS虚拟机上运行openharmony工程

在HarmonyOS的虚拟机上要运行openharmony的工程时需要修改的地方有 1.修改build-profile.json5,将runtimeOS改为HarmonyOS "targets": [{"name": "default","runtimeOS": "HarmonyOS"}, 2.修改工程引用的SDK&a…...

C++程序员入门需要怎么学?(InsCode AI 创作助手)

文章目录 (一)学习C概念(二)C主要应用场景和相关产品(三)学习C流程1. 学习C语法和基本示例:2. 深入学习面向对象编程(OOP):3. 使用C标准库:4. 解决…...

Intel 高性能库之IPP信号处理简介及下载(版本5.1,含32位和64位及注册)

IPP是什么 IPP:Intel Integrated Performance Primitives 英特尔集成性能基元(英特尔IPP)是一款多核就绪的扩展函数库,其中包含众多针对多媒体、数据处理和通信应用高度优化的软件函数。它包括: 视频编码:用于 DV25/50/100、MPEG-2、MPEG-4、H.263 和 MPEG-4 Part 10 …...

【C++】运算符重载案例 - 字符串类 ② ( 重载 等号 = 运算符 | 重载 数组下标 [] 操作符 | 完整代码示例 )

文章目录 一、重载 等号 运算符1、等号 运算符 与 拷贝构造函数2、重载 等号 运算符 - 右操作数为 String 对象3、不同的右操作数对应的 重载运算符函数 二、重载 下标 [] 运算符三、完整代码示例1、String.h 类头文件2、String.cpp 类实现3、Test.cpp 测试类4、执行结果 一…...

Vue脚手架开发流程

一、项目运行时会先执行 public / index.html 文件 <!DOCTYPE html> <html lang""><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&quo…...

从零开始学习线性回归:理论、实践与PyTorch实现

文章目录 &#x1f966;介绍&#x1f966;基本知识&#x1f966;代码实现&#x1f966;完整代码&#x1f966;总结 &#x1f966;介绍 线性回归是统计学和机器学习中最简单而强大的算法之一&#xff0c;用于建模和预测连续性数值输出与输入特征之间的关系。本博客将深入探讨线性…...

[LeetCode]链式二叉树相关题目(c语言实现)

文章目录 LeetCode965. 单值二叉树LeetCode100. 相同的树LeetCode101. 对称二叉树LeetCode144. 二叉树的前序遍历LeetCode94. 二叉树的中序遍历LeetCode145. 二叉树的后序遍历LeetCode572. 另一棵树的子树 LeetCode965. 单值二叉树 题目 Oj链接 思路 一棵树的所有值都是一个…...

集成学习

集成学习&#xff08;Ensemble Learning) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/27689464集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型&#xff0c;集成学习潜在的思想是即便某一个弱分类器得到了错误的预测&#xff0c;其他的弱分类器…...

算法练习11——买卖股票的最佳时机 II

LeetCode 122 买卖股票的最佳时机 II 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回…...

linux——多线程,线程控制

目录 一.POSIX线程库 二.线程创建 1.创建线程接口 2.查看线程 3.多线程的健壮性问题 4.线程函数参数传递 5.线程id和地址空间 三.线程终止 1.pthread_exit 2.pthread_cancel 四.线程等待 五.线程分离 一.POSIX线程库 站在内核的角度&#xff0c;OS只有轻量级进程…...

Oracle 简介与 Docker Compose部署

最近&#xff0c;我翻阅了在之前公司工作时的笔记&#xff0c;偶然发现了一些有关数据库的记录。当初&#xff0c;我们的项目一开始采用的是 Oracle 数据库&#xff0c;但随着项目需求的变化&#xff0c;我们不得不转向使用 SQL Server。值得一提的是&#xff0c;公司之前采用的…...

Linux 系统安装 MySQL(CentOS8/Ubuntu),命令行实操完整版

前言开发和服务器部署基本都是 Linux 环境&#xff0c;本篇手把手教你 CentOS8 和 Ubuntu 两大主流系统命令行安装 MySQL&#xff0c;全程命令复制即用&#xff0c;无多余操作。一、通用前置准备关闭防火墙、关闭 SELinux&#xff08;服务器环境可选&#xff09;bash运行# Cent…...

hackGPT:基于大语言模型的智能命令行安全工具实践

1. 项目概述&#xff1a;当黑客工具遇上大语言模型最近在安全研究和自动化工具开发的圈子里&#xff0c;一个名为“hackGPT”的项目引起了我的注意。这个由NoDataFound开源的仓库&#xff0c;名字本身就充满了噱头——它将“黑客”&#xff08;hack&#xff09;与当下最热的大语…...

从聊天到拿Shell:一个Netcat命令的‘黑白’两面实战指南(含正向/反向Shell演示)

从聊天到拿Shell&#xff1a;Netcat命令的双面实战手册 在网络安全领域&#xff0c;很少有工具能像Netcat这样同时扮演"天使"与"恶魔"的双重角色。这个被称为"网络瑞士军刀"的轻量级工具&#xff0c;既能帮助管理员快速排查网络问题&#xff0c;…...

Windows 10系统瘦身实战:用Win10BloatRemover打造高效纯净系统

Windows 10系统瘦身实战&#xff1a;用Win10BloatRemover打造高效纯净系统 【免费下载链接】Win10BloatRemover Configurable CLI tool to easily and aggressively debloat and tweak Windows 10 by removing preinstalled UWP apps, services and more. Originally based on …...

OdinSerializer扩展开发完全手册:创建自定义序列化组件

OdinSerializer扩展开发完全手册&#xff1a;创建自定义序列化组件 【免费下载链接】odin-serializer Fast, robust, powerful and extendible .NET serializer built for Unity 项目地址: https://gitcode.com/gh_mirrors/od/odin-serializer OdinSerializer是一款专为…...

Minecraft服务器技能管理自动化:mcpskills-cli命令行工具实战指南

1. 项目概述与核心价值最近在折腾一些自动化脚本&#xff0c;特别是涉及到Minecraft服务器管理和技能系统的时候&#xff0c;发现很多操作还是得手动进后台敲命令&#xff0c;或者依赖一些图形化面板&#xff0c;效率上总感觉差了点意思。直到我发现了alibiinformationsuperhig…...

【资讯】《二〇二五年中国知识产权保护状况》白皮书正式发布

2026年5月7日&#xff0c;《二〇二五年中国知识产权保护状况》白皮书正式发布&#xff0c;呈现了2025年中国知识产权保护工作进展&#xff0c;系统介绍制度建设、审批登记、文化建设、国际合作等方面的扎实成果&#xff0c;为社会各界和国际社会了解中国知识产权保护最新实践提…...

连接池失效——高并发下的隐形杀手

连接池失效——高并发下的隐形杀手 系统挂了 现象&#xff1a;用户打开页面&#xff0c;一直转圈。5分钟后&#xff0c;页面报错。 错误日志&#xff1a; org.apache.tomcat.jdbc.pool.PoolExhaustedException: [http-nio-8080-exec-72] Timeout: Pool empty. Unable to fetch …...

你还在手写提示词?:2024最稀缺的提示词自动化工作流(含可运行Python脚本+权重映射API)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney提示词编写的核心范式演进 早期提示词依赖直觉式描述&#xff08;如“a cat”&#xff09;&#xff0c;而现代范式已转向结构化、分层可控的语义工程。当前主流实践将提示词解耦为三类要素&a…...

MPLAB Harmony 2.0固件框架:从MISRA-C合规到图形化开发的嵌入式开发新范式

1. 项目概述&#xff1a;为什么我们需要一个“全功能”的固件框架&#xff1f;如果你和我一样&#xff0c;在PIC32单片机的世界里摸爬滚打过几年&#xff0c;肯定经历过这样的场景&#xff1a;项目启动&#xff0c;面对Microchip提供的海量外设库、驱动代码和中间件&#xff0c…...