redis学习-Hash类型相关命令及特殊情况分析

news2024/11/23 22:50:47

目录

1. hset KEY key1 value1 key2 value2 ...

2. hget KEY key

3. hgetall KEY

4. hmget KEY key1 key2 ...

5. hkeys KEY

6. hvals KEY

7. hdel KEY key1 key2 ...

8. hlen KEY

9. hexists KEY key

10. hincrby KEY key num

11. hsetnx KEY key value


        Hash的内部存储结构相当于一个map,存储的是一个个键值对;所以在redis中相当于

KEY-(key-value)。Hash更适合存储一个对象,或者经常变动的信息。

1. hset KEY key1 value1 key2 value2 ...

        在哈希表中插入键值对,如果该哈希表不存在则会先创建;当哈希表中已经存在要插入的key时则会覆盖。返回值为添加的个数而不是修改的个数。

2. hget KEY key

        获取指定哈希表中指定键值对的value。

3. hgetall KEY

        输出指定哈希表的所有键值对,并按照一行key一行value的顺序输出。

4. hmget KEY key1 key2 ...

        同时执行多次hget操作。

        那为什么没有一次性创建多个哈希表的操作呢,或者为什么不能像String类型有mset的那样有mhset呢?

        理论上当然可以,但实际行不通,因为hset的操作第一个是KEY,后面就是这个KEY的一些键值对了,如果一次创建多个哈希表,那剩下的哈希表信息肯定是放在第一个哈希表的后面,也就是hset KEY1 k1 v1 k2 v2 KEY2 k1 v1 k2 v2... ,这么写肯定是可以区分的,但如果实现起来就无法区分KEY2究竟是另一个哈希表还是KEY1的一个键值对了,所以只有一次创建一个哈希表的操作。

        思维再拓展一下,为什么hmget只能获取一个哈希表的多个键值对呢?这也是因为无法区分后面的内容是另一个哈希表还是这个哈希表的键值对了。

5. hkeys KEY

        只输出一个哈希表的所有key。

6. hvals KEY

        只输出一个哈希表的所有value。

7. hdel KEY key1 key2 ...

        删除指定哈希表中的指定键值对。

8. hlen KEY

        输出指定哈希表的长度。

9. hexists KEY key

        判断一个哈希表中是否存在指定的键值对。

10. hincrby KEY key num

        对一个哈希表中指定键值对的value增加指定步长,当num为负数时代表减少指定步长,hash类型没有对应的hdecrby。执行这个操作要保证对应键值对的value必须是数字。

11. hsetnx KEY key value

        当该哈希表不存在或者指定键值对不存在时才会创建键值对。

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

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

相关文章

HDFSDATANODE数据传输详解

本文主要阐述datanode中一个socket连接接收字节流的构成,帮助datanode的接收与处理数据。注意hadoop版本为3.1.1。 写在前面 Datanode本质上也是TCPServer,一般的TCPServer接到客户端请求以后会分配一个线程处理,对于Datanode而言&#xff…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:SideBarContainer)

提供侧边栏可以显示和隐藏的侧边栏容器,通过子组件定义侧边栏和内容区,第一个子组件表示侧边栏,第二个子组件表示内容区。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TextTimer)

通过文本显示计时信息并控制其计时器状态的组件。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 TextTimer(options?: TextTimerOptions) 参数: 参数名参数类型…

数据仓库数据分层详解

数据仓库中的数据分层是一种重要的数据组织方式,其目的是为了在管理数据时能够对数据有一个更加清晰的掌控。以下是数据仓库中的数据分层详解: 原始数据层(Raw Data Layer):这是数仓中最底层的层级,用于存…

【老旧小区用电安全谁能管?】安科瑞智慧用电安全管理系统解决方案

行业背景 电气火灾指由电气故障引发的火灾。每年以30%的比例高居各类火灾原因之首。以50%到80%的比例高居重特大火灾之首。已成为业界重点关注的对象并为此进行着孜孜不倦的努力。 国务院安委会也于2017年5月至2020年4月年开展了为期3年的电气火灾综合治理工作。在各界努力的…

主干网络篇 | YOLOv8更换主干网络之ShuffleNetV2

前言:Hello大家好,我是小哥谈。ShuffleNetV2是一种轻量级的神经网络架构,用于图像分类和目标检测任务。它是ShuffleNet的改进版本,旨在提高模型的性能和效率。ShuffleNetV2相比于之前的版本,在保持模型轻量化的同时&am…

LeetCode刷题小记 八、【回溯算法】

1.回溯算法 文章目录 1.回溯算法写在前面1.1回溯算法基本知识1.2组合问题1.3组合问题的剪枝操作1.4组合总和III1.5电话号码的字母组合1.6组合总和1.7组合总和II1.8分割回文串1.9复原IP地址1.10子集问题1.11子集II1.12非递减子序列1.13全排列1.14全排列II1.15N皇后1.16解数独 写…

WanAndroid(鸿蒙版)开发的第三篇

前言 DevEco Studio版本:4.0.0.600 WanAndroid的API链接:玩Android 开放API-玩Android - wanandroid.com 其他篇文章参考: 1、WanAndroid(鸿蒙版)开发的第一篇 2、WanAndroid(鸿蒙版)开发的第二篇 3、WanAndroid(鸿蒙版)开发的第三篇 …

三级等保技术建议书

1信息系统详细设计方案 1.1安全建设需求分析 1.1.1网络结构安全 1.1.2边界安全风险与需求分析 1.1.3运维风险需求分析 1.1.4关键服务器管理风险分析 1.1.5关键服务器用户操作管理风险分析 1.1.6数据库敏感数据运维风险分析 1.1.7“人机”运维操作行为风险综合分析 1.2…

EPICS和Arduino Uno之间基于串行文本协议的控制开发

Arduino Uno的串口服务程序设置如文本的串口通信协议设计以及在Arduino上的应用-CSDN博客中所示。通过在串口上发送约定的文本协议,它实现的功能如下: 实现功能: 读取三路0.0V~5.0V模拟量输入,读取端口A0~A2设置三路0.0V~5.0V的模…

Github 2024-03-16 开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目5非开发语言项目2TypeScript项目1C++项目1Lua项目1Swift项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:4…

spring boot3登录开发-微信小程序用户登录设计与实现

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 登录流程 流程解析 具体实现 相关代码 说明 服务端 小程序端 写在最后 写在前面 本文介绍了springb…

BigDL-LLM 安装指南——在iGPU集成显卡下使用BigDL-LLM大模型库加速LLM

文章目录 iGPU是什么?一、环境准备1.1 Visual Studio 2022 Community 安装1.2 安装或更新最新版本的GPU驱动程序1.3 安装英特尔oneAPI工具包2024.0版本1.4 安装Anaconda 二、BigDL -LLM 安装2.1 创建虚拟环境2.2 激活虚拟环境2.3 安装bigdl-llm[xpu] 三、运行环境配…

Etcd 介绍与使用(入门篇)

etcd 介绍 etcd 简介 etc (基于 Go 语言实现,)在 Linux 系统中是配置文件目录名;etcd 就是配置服务; etcd 诞生于 CoreOS 公司,最初用于解决集群管理系统中 os 升级时的分布式并发控制、配置文件的存储与分…

哔哩哔哩后端Java一面

前言 作者:晓宜 个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者 最近各大公司的春招和实习招聘都开始了,这里分享下去年面试B站的的一些问题,希望对大家有所帮助…

PLC_博图系列☞基本指令“RESET_BF”复位位域

PLC_博图系列☞基本指令“RESET_BF”复位位域 文章目录 PLC_博图系列☞基本指令“RESET_BF”复位位域背景介绍RESET_BF:复位位域说明类型为 PLC 数据类型、STRUCT 或 ARRAY 的位域参数示例 关键字: PLC、 西门子、 博图、 Siemens 、 RESET_BF 背景…

java 开发工具

新建项目 打开idea选择 New Project 新建一个项目 左边选择 Java项目,右边选择Java版本 接着next 修改项目名称和保存路径,然后点击下面的 Finish 最终页面; 在 src 目录右键,新建一个包 在 src 目录右键,新建java 文件 有时候会需…

Git全套教程一套精通git.跟学黑马笔记

Git全套教程一套精通git.跟学黑马笔记 文章目录 Git全套教程一套精通git.跟学黑马笔记1.版本管理工具概念2. 版本管理工具介绍2.1版本管理发展简史(维基百科)2.1.1 SVN(SubVersion)2.1.2 Git 3. Git 发展简史4. Git 的安装4.1 git 的下载4.2 安装4.3 基本配置4.4 为常用指令配置…

智能工具柜-RFID智能工具柜管理系统

RFID工具柜管理系统是一种便捷化的工具管理系统,它采用RFID技术实现信息化,可以大大提高工具管理的效率和准确性。 日常的工具管理也确实存在一定的管理问题,如工具管理效率低、管理不准确等。因此,采用RFID技术实现信息化已经成…

【深度学习】深度估计,Depth Anything Unleashing the Power of Large-Scale Unlabeled Data

论文标题:Depth Anything Unleashing the Power of Large-Scale Unlabeled Data 论文地址:https://arxiv.org/pdf/2401.10891.pdf 项目主页:https://depth-anything.github.io/ 演示地址:https://huggingface.co/spaces/LiheYoung…