• 速通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)

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

  • 相关阅读:
    【正点原子STM32连载】第六章 新建寄存器版本MDK工程 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
    html5
    C++官网 Tutorials C++ Language Program structure:Functions
    数据中心绿色低碳重要趋势下,希捷用创新技术让磁盘“重生”
    利用Cannon算法证明跨节点的线程通信的代价要远高于本地跨核通信的代价
    1.网络空间搜素引擎
    云端生成式 AI – 基于 Amazon EKS 的 Stable Diffusion 图像生成方案
    【技术积累】Linux中的命令行【理论篇】【八】
    西工大2022数学竞赛极限专题的练习记录
    JavaPTA练习题 7-3 打印99乘法表
  • 原文地址:https://blog.csdn.net/m0_62468521/article/details/133756415