Redis---hashset数据类型操作

【Redis】2. Redis数据类型 String以及key的设置约定 学习资料 https://www.bilibili.com/video/BV1CJ411m7Gc?p=6 数据存储类型介绍 业务数据的特殊性 作为缓存使用 原始业务功能设计 秒杀 618活动 双十一活动 排队购票 运营平台监控到的突发高频访问数据 突发市政要闻,被强势关注围观 高频、复杂的统计数据 在线人数 投票排行榜 附加功能 系统功能优化或升级 单服务器升级集群 Session管理 To... 阅读详情

一、概述:

我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。

非常适合储存一个对象,比如张三,有性别、姓名、年龄。

二、相关命令列表:

命令原型时间复杂度命令描述返回值
HSET key field valueO(1)为指定的Key设定Field/Value对,如果Key不存在,该命令将创建新Key以参数中的Field/Value对,如果参数中的Field在该Key中已经存在,则用新值覆盖其原有值。1表示新的Field被设置了新值,0表示Field已经存在,用新值覆盖原有值。
HGET key fieldO(1)返回指定Key中指定Field的关联值。返回参数中Field的关联值,如果参数中的Key或Field不存,返回nil。
HEXISTS key fieldO(1)判断指定Key中的指定Field是否存在。1表示存在,0表示参数中的Field或Key不存在。
HLEN keyO(1)获取该Key所包含的Field的数量。返回Key包含的Field数量,如果Key不存在,返回0。
HDEL key field [field …]O(N)时间复杂度中的N表示参数中待删除的字段数量。从指定Key的Hashes Value中删除参数中指定的多个字段,如果不存在的字段将被忽略。如果Key不存在,则将其视为空Hashes,并返回0.实际删除的Field数量。
HSETNX key field valueO(1)只有当参数中的Key或Field不存在的情况下,为指定的Key设定Field/Value对,否则该命令不会进行任何操作。1表示新的Field被设置了新值,0表示Key或Field已经存在,该命令没有进行任何操作。
HINCRBY key field incrementO(1)增加指定Key中指定Field关联的Value的值。如果Key或Field不存在,该命令将会创建一个新Key或新Field,并将其关联的Value初始化为0,之后再指定数字增加的操作。该命令支持的数字是64位有符号整型,即increment可以负数。返回运算后的值。
HGETALL keyO(N)时间复杂度中的N表示Key包含的Field数量。获取该键包含的所有Field/Value。其返回格式为一个Field、一个Value,并以此类推。 Field/Value的列表。
HKEYS keyO(N)时间复杂度中的N表示Key包含的Field数量。返回指定Key的所有Fields名。Field的列表。
HVALS keyO(N)时间复杂度中的N表示Key包含的Field数量。返回指定Key的所有Values名。 Value的列表。
HMGET key field [field …]O(N)时间复杂度中的N表示请求的Field数量。获取和参数中指定Fields关联的一组Values。如果请求的Field不存在,其值返回nil。如果Key不存在,该命令将其视为空Hash,因此返回一组nil。返回和请求Fields关联的一组Values,其返回顺序等同于Fields的请求顺序。
HMSET key field value [field value …]O(N)时间复杂度中的N表示被设置的Field数量。逐对依次设置参数中给出的Field/Value对。如果其中某个Field已经存在,则用新值覆盖原有值。如果Key不存在,则创建新Key,同时设定参数中的Field/Value。

三、命令示例:

这里写图片描述

  1. HSET/HGET/HDEL/HEXISTS/HLEN/HSETNX:
    在Shell命令行启动Redis客户端程序
    /> redis-cli
    给键值为myhash的键设置字段为field1,值为stephen。
    redis 127.0.0.1:6379> hset myhash field1 “stephen”
    (integer) 1
    获取键值为myhash,字段为field1的值。
    redis 127.0.0.1:6379> hget myhash field1
    “stephen”
    myhash键中不存在field2字段,因此返回nil。
    redis 127.0.0.1:6379> hget myhash field2
    (nil)
    给myhash关联的Hashes值添加一个新的字段field2,其值为liu。
    redis 127.0.0.1:6379> hset myhash field2 “liu”
    (integer) 1
    获取myhash键的字段数量。
    redis 127.0.0.1:6379> hlen myhash
    (integer) 2
    判断myhash键中是否存在字段名为field1的字段,由于存在,返回值为1。
    redis 127.0.0.1:6379> hexists myhash field1
    (integer) 1
    删除myhash键中字段名为field1的字段,删除成功返回1。
    redis 127.0.0.1:6379> hdel myhash field1
    (integer) 1
    再次删除myhash键中字段名为field1的字段,由于上一条命令已经将其删除,因为没有删除,返回0。
    redis 127.0.0.1:6379> hdel myhash field1
    (integer) 0
    判断myhash键中是否存在field1字段,由于上一条命令已经将其删除,因为返回0。
    redis 127.0.0.1:6379> hexists myhash field1
    (integer) 0
    通过hsetnx命令给myhash添加新字段field1,其值为stephen,因为该字段已经被删除,所以该命令添加成功并返回1。
    redis 127.0.0.1:6379> hsetnx myhash field1 stephen
    (integer) 1
    由于myhash的field1字段已经通过上一条命令添加成功,因为本条命令不做任何操作后返回0。
    redis 127.0.0.1:6379> hsetnx myhash field1 stephen
    (integer) 0
    2. HINCRBY:
    删除该键,便于后面示例的测试
    redis 127.0.0.1:6379> del myhash
    (integer) 1
    准备测试数据,该myhash的field字段设定值1。
    redis 127.0.0.1:6379> hset myhash field 5
    (integer) 1
    给myhash的field字段的值加1,返回加后的结果。
    redis 127.0.0.1:6379> hincrby myhash field 1
    (integer) 6
    给myhash的field字段的值加-1,返回加后的结果。
    redis 127.0.0.1:6379> hincrby myhash field -1
    (integer) 5
    给myhash的field字段的值加-10,返回加后的结果。
    redis 127.0.0.1:6379> hincrby myhash field -10
    (integer) -5
    1. HGETALL/HKEYS/HVALS/HMGET/HMSET:
      删除该键,便于后面示例测试。
      redis 127.0.0.1:6379> del myhash
      (integer) 1
      为该键myhash,一次性设置多个字段,分别是field1 = “hello”, field2 = “world”。
      redis 127.0.0.1:6379> hmset myhash field1 “hello” field2 “world”
      OK
      获取myhash键的多个字段,其中field3并不存在,因为在返回结果中与该字段对应的值为nil。
      redis 127.0.0.1:6379> hmget myhash field1 field2 field3
      1) “hello”
      2) “world”
      3) (nil)
      返回myhash键的所有字段及其值,从结果中可以看出,他们是逐对列出的。
      redis 127.0.0.1:6379> hgetall myhash
      1) “field1”
      2) “hello”
      3) “field2”
      4) “world”
      仅获取myhash键中所有字段的名字。
      redis 127.0.0.1:6379> hkeys myhash
      1) “field1”
      2) “field2”
      仅获取myhash键中所有字段的值。
      redis 127.0.0.1:6379> hvals myhash
      1) “hello”
      2) “world”
大模型之Spring AI实战系列(二十六):Spring Boot + DeepSeek 实战指南:构建AI聊天应用 在人工智能技术飞速发展的今天,大型语言模型已经成为了推动技术创新的重要力量。DeepSeek作为国内领先的大型语言模型提供商,其推出的DeepSeek系列模型在多个领域都展现出了卓越的性能。本文将详细介绍如何使用Spring Boot框架集成DeepSeek API,构建一个简单的AI聊天应用。我们将实现两个核心功能:普通文本生成和流式文本生成。 阅读详情

相关推荐

从LLaMA到LLaMA-MoE:轻量级混合专家模型构建与实战指南

混合专家(Mixture-of-Experts, MoE)是一种先进的神经网络架构,其核心原理是通过门控网络动态地为不同输入选择不同的专家子网络进行计算,从而实现模型容量的指数级扩展,同时保持推理时的计算量基本不变。这种稀疏激活的特性赋予了MoE极高的技术价值,使其成为解决大模型训练与推理成本矛盾的关键技术之一,在自然语言处理、多模态学习等场景中展现出巨大潜力。本文聚焦于**LLaMA-MoE**这一具体实践,深入探讨了如何基于成熟的稠密模型(如LLaMA),通过**专家构建**与**持续预训练**两大关键

weixin_28730549的博客 564

Redis数据类型之(哈希Hash和集合Set)

Sinter:返回他们的交集。返回给定所有集合的交集SinsterStore:把他们交集返回并存储在destination 中。写的时候可以都小写,我只是为了看着清晰,才驼峰写法返回给定所有集合的交集并存储在 destination 中Sunion:返回他们的并集。返回所有给定集合的并集SunionStore:把他们并集返回并存储在destination 中。所有给定集合的并集存储在 destination 集合中Sdiff:返回他们的差集。

huanloveqiang的博客 3666

CH455G数码管驱动与键盘扫描:I2C通信协议深度解析与实战代码

本文深度解析CH455G芯片的I2C通信协议,涵盖数码管驱动与键盘扫描功能的实战应用。通过详细讲解起始/停止信号、数据帧结构、应答机制及单片机代码实现,帮助开发者高效利用该芯片减少IO占用,提升嵌入式系统设计效率。

tea88的博客 1084

redis_04_hashset

redis_hashset

一只倔强而老实的虫 2344

Python爬取腾讯视频m3u8加密流实战(附完整代码)

本文提供了一份详细的Python实战教程,指导如何通过抓包分析、模拟请求头与载荷,破解腾讯视频的m3u8加密流防盗链机制,并附上完整代码实现视频片段的下载与合并。教程涵盖从侦察到代码实现的完整流程,并包含参数动态化、多线程下载等高级技巧与避坑指南,旨在帮助开发者掌握流媒体下载的核心技术。

weixin_29090089的博客 1589

ADS许可证配置全攻略:从破解文件放置到环境变量设置(实测有效版)

本文详细介绍了ADS许可证配置的全流程,包括环境准备、全新安装、破解文件部署和环境变量设置等关键步骤。针对常见的安装和授权问题,提供了实测有效的解决方案,帮助工程师快速完成ADS的配置与优化。

websocket5live的博客 377

Redis学习文档(Redis基本数据类型【Hash、Set】)

你可以基于 Set 轻易实现交集、并集、差集的操作,比如你可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。当你需要存储一个列表数据,又不希望出现重复数据时,Set 是一个很好的选择,并且 Set 提供了判断某个元素是否在一个 Set 集合内的重要接口,这个也是 List 所不能提供的。Redis 中的 Hash 是一个 String 类型的 field-value(键值对) 的映射表,特别适合用于存储对象,后续操作的时候,你可以直接修改这个对象中的某些字段的值。

cuishujian_2003的博客 1161

Juniper SRX PPPoE配置

set interfaces pp0 unit 1 ppp-options chap default-chap-secret 拨号用户名密码。set interfaces pp0 unit 0 ppp-options chap default-chap-secret 拨号密码。set interfaces pp0 unit 0 ppp-options chap local-name 拨号用户名。6号口接运营商进行拨号。

Jian Sun_的博客 750

深入理解redis的hash与set以及中间的zipset

它将所有的元素紧挨着一起存储,分配的是一块连续的内存。大字典的扩容是比较耗时间的,需要重新申请新的数组,然后将旧字典所有链表中的元 素重新挂接到新的数组下面,这是一个 O(n)级别的操作,作为单线程的 Redis 表示很难承受 这样耗时的过程。所以,在刚才的二级编码中,我们只用图片ID最后3位作为Hash集合的key,也就保证了Hash集合的元素个数不超过1000,同时,我们把hash-max-ziplist-entries设置为1000,这样一来,Hash集合就可以一直使用压缩列表来节省内存空间了。

lcarus008的博客 1311

Windows11 - Ubuntu 双系统及 ROS、ROS2 安装

在本教程中,我们将使用 Ubuntu 20.04 版本,该版本使用了新的 Ubuntu 桌面安装程序,该程序将包含在今后发布的所有 Ubuntu 版本中。如果你选择了这个选项,你会看到一个简单的界面,允许你选择要安装Ubuntu的硬盘,并通过滑块来决定你希望Ubuntu使用的磁盘空间大小。如果你的电脑有多个硬盘驱动器,那么只要它们各自有自己的驱动器,这个选项就能让你在安装 Ubuntu 的同时安装现有的操作系统。在此屏幕上,系统会提示您输入您的姓名和您的计算机名称,以显示在网络上。

机器人控制与仿真应用 4507

BUCK-BOOST升降压电路Multisim电路仿真分析

本文分析了三极管型BUCK-BOOST升降压开关电源的工作原理。该电路结合了BUCK降压和BOOST升压拓扑,通过控制三极管Q1的高频通断,使电感L1周期性储能和释能,实现输出电压可高于或低于输入电压且极性相反。详细阐述了Q1导通和关断阶段的工作过程,推导了输出电压与占空比的关系式Vo=-D/(1-D)*Vi,并分析了不同占空比下的工作模式(降压、升压)。通过Multisim仿真验证了理论分析,当D=25%时输出降压至1.6V,D=60%时输出升压至7.5V。电路具有升降压灵活、极性反转、效率高等特点,适用

XU157303764的博客 1434

Redis深入浅出—hash、set

一 、Hash 1.1 介绍 Redis中的字典采用哈希表作为底层实现,一个哈希表有多个节点,每个节点保存一个键值对。 在Redis源码文件中,字典的实现代码在dict.c和dict.h文件中。 Redis的数据库就是使用字典作为底层实现的,通过key和value的键值对形式,代表了数据库中全部数据。而且,所有对数据库的增、删、查、改的命令,都是建立在对字典的操作上。 同时,字典还是R...

我的博客 1万+

《Zephyr OS 入门与实战》第5章:内存管理策略

【代码】《Zephyr OS 入门与实战》第5章:内存管理策略。

2301_79143213的博客 349

Redis学习总结(三)——list、hashset数据类型的操作

目录 一、List数据类型 1.1 概述: 1.2 相关命令列表: 1.3 命令示例: 1.4、链表结构的小技巧: 二、HashSet数据类型 2.1、概述: 2.2、相关命令列表: 2.3、命令示例: 一、List数据类型 1.1 概述:       在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部...

Gorden的博客 1095

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Redis(二)数据类型

redis数据类型

爱喝星冰乐的博客 1365

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C#对Redis 的操作

Redis存入数据库的选择 Redis的5种数据类型的写入和读取 string类型 A: 优点 逐个处理元素:适用于需要逐个处理列表元素的情况,每次弹出一个处理,确保处理的元素不再 保留在列表中。 节省内存:一次只处理一个元素,适用于列表非常大且内存有限的情况,不会将整个列表加载到内存中。 缺点 多次网络往返:每次 ListLeftPop 都会与 Redis 服务器通信,对于长列表可能会产生较多的网络请求,导致性能开销。 可能阻塞:如果列表元素处理较慢,会阻塞循环,无法高效地批量处理元素

QW1256csdn的博客 779

redis--基本数据类型基本操作

redis redis基本数据类型 string ->String hash ->HashMap list ->LinkedList set ->HashSet sorted_set ->Tree_set string类型数据的基本操作 添加:set key value 获取:get key 删除:del key 添加/修改多个数据:mset k1 v1 k2 v2 [m->multiple] 获取多个数据:mget

羊羊吃草 244

redis数据类型string

redis数据存储格式 reids自身是一个Map,其中所有的而数据都是采用key:value的形式存储 数据类型指得是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串 Redis 数据类型(5种常见) string String hash HashMap list LinkedList ...

SweepingBoy的博客 187

redis 常见数据类型

Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。特征也与LinkedList类似:有序元素可以重复插入和删除快查询速度一般List的常见命令有:LPUSH key element ... :向列表左侧插入一个或多个元素LPOP key:移除并返回列表左侧的第一个元素,没有则返回nilRPUSH key element ... :向列表右侧插入一个或多个元素。

weixin_73031637的博客 1739

Redis 数据类型

Redis 数据类型(5种常用) 数据类型 类比Java数据类型 string String hash HashMap list LinkedList set HashSet sorted_set TreeSet 查询数据类型用法help @数据类型 redis 数据存储格式 redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储 数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串

weixin_42524843的博客 739

Redis的String数据类型及常用命令

一、Redis 数据类型(5种常用) string String hash HashMap list LinkedList set HashSet sorted_set TreeSet 二、redis 数据存储格式 redi...

kuole的博客 297

.NET 6使用Redis

部署测试环境 本地启动redis控制台 && 安装redis服务(用于调试) 1.下载最新版redis,选择.zip则是免安装的版本 下载地址 (这是封装好的基于windows的redis服务) 2.解压到指定目录,并运行cmd命令 3.在该文件夹下运行命令: redis-server.exe redis.windows.conf 4.看到如下显示,则表示启动成功 5.将redis安装成服务 在该文件夹下运行命令:redis-server.exe --service-

L.的博客 2209

(二)Redis数据类型之String类型

数据存储类型介绍 业务数据的特殊性,分析数据类型应该有哪些 作为缓存使用 原始业务功能设计 秒杀 618活动 双十一活动 排队购票 运营平台监控到的突发高频访问数据 突发市政要闻,被强势关注围观 高频、复杂的统计数据 在线人数 投票排行榜 附加功能 系统功能优化或升级 单服务器升级集群 Session管理 Token管理 Redis 数据类型(5种常用) string --> String hash --> Hashmap list --> LinkList set -->

weixin_44049332的博客 318

Redis的数据结构

引言 Redis官网对于redis有以下的介绍 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps,

TONIYH的博客 543

Redis 基础数据结构(五)

这一节我们介绍Redis的集合(set)和有序集合(zset)两种数据类型 一、set(集合) 1、Redis的set相当于java里面的HashSet,他的内部的键值是无序的,唯一的。内部实现是一个所有value都是一个值null的字典结构。 2、当集合中最后一个元素被删除后,数据结构被自动删除,内存被回收 3、set结构具有去重功能,可以保证数据的唯一性。 com.xiaozham...

麦芒小蚱蜢的博客 266

Redis使用总结

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

qq_37765808的博客 597
上一篇: Redis---List数据类型操作
下一篇: Redis---set数据类型操作
杜鲁门
博客等级 码龄11年 219粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值