zoukankan      html  css  js  c++  java
  • Redis常见数据类型二:Hash

    hash类型

    1、新的存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息

    2、需要的存储结构:一个存储空间保存多个键值对数据

    3、hash类型:底层使用哈希表结构实现数据存储

    hash存储结构优化

    • 如果field(字段)数量较少,存储结构优化为类数组结构。
    • 如果field数量较多,存储结构使用HashMap结构。

    hash类型数据的操作

    单条数据操作

    添加/修改数据

    添加和修改的格式都是:hset key field value

    获取数据

    格式:hget key field

    删除数据

    格式:hdel key field

    多条数据操作

    添加/修改多条数据

    格式:hmset key field value field1 value1

    获取多条数据

    格式:hmget key field field1

    扩展操作

    获取key的全部值

    格式:hgetall key

    获取key的值的数量

    格式:hlen key

    是否存在field

    格式:hexists key field

    所有key的字段

    格式:hkeys key

    所有key的值

    格式:hvals key

    为哈希表中的字段值加上指定增量值

    格式:hincrby key field num

    增量也可以为负数,相当于对指定字段进行减法操作。

    如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。

    如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。

    对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。

    本操作的值被限制在 64 位(bit)有符号数字表示之内。

    为哈希表中的字段值加上指定浮点数增量值

    格式:hincrbyfloat key field num

    如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。

    为哈希表中不存在的的字段赋值

    格式:hsetnx key field value

    如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。

    如果字段已经存在于哈希表中,操作无效。

    如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。

    hash 类型数据操作注意事项

    hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到, 对应的值为(nil)。

    每个 hash 可以存储 2³² - 1 个键值对。

    hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可滥用,更不可以将hash作为对象列表使用。

    hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就很会低,有可能成为数据访问瓶颈。

    End!

  • 相关阅读:
    了解大数据的特点、来源与数据呈现方式
    作业五 | 结对项目-四则运算 “软件”之升级版
    作业四 | 个人项目-小学四则运算 “软件”之初版
    作业三 | 阅读《构建之法》1-5章
    作业二 | Git的安装与使用
    随笔 | 对计算机专业的自我思考
    【大数据作业二】字符串操作,英文词频统计预处理
    【大数据作业一】了解大数据的特点、来源与数据呈现方式
    结对项目——四则运算 “软件”之升级版
    作业四 个人项目-小学四则运算 “软件”
  • 原文地址:https://www.cnblogs.com/gygg/p/13668408.html
Copyright © 2011-2022 走看看