zoukankan      html  css  js  c++  java
  • Redis基本数据结构之Hash

    1Hash (哈希)

    在 Redis 中,哈希类型 是指键值本身又是一个 键值对结构哈希 形如 value={ {field1,value1},...{fieldN,valueN} },Redis 键值对哈希类型 二者的关系如图所示:

    哈希类型中的 映射关系 叫作 field-value,这里的 value 是指 field 对应的 ,不是 对应的值。

    1.1 相关命令

    设置值

    命令为: hset key field value

    使用方法

    此外 Redis 提供了 hsetnx 命令,它们的关系就像 set 和 setnx 命令一样,只不过 作用域 由 键 变为 field。

    (1) 获取值

    命令为:hget key field

    (2) 删除field

    命令为: hdel key field [field ...]

    hdel 会删除 一个或多个 field,返回结果为 成功删除 field 的个数

    (3) 计算field个数

    命令为: hlen key

    (4) 批量设置或获取field-value

    批量设置命令为:hmset key field value [field value ...]

    批量获取命令为:hmget key field [field ...]

    hmset 和 hmget 分别是 批量设置获取 field-value,hmset 需要的参数是 key 和 多对 field-value,hmget 需要的参数是 key 和 多个 field

    (5) 获取所有的field

    命令为: hkeys key

    返回指定 哈希键 所有的 field

    (6) 获取所有value

    命令为:hvals key

    (7) 获取所有的field-value

    命令为: hgetall key

    (8) 判断field是否存在

    命令为: hexists key field

    key包含field 返回 1 不包含返回0

    (9) 各种命令的时间复杂度

    1.2 应用场景

    如图所示,为 关系型数据表 的两条 用户信息,用户的属性作为表的列,每条用户信息作为行。

    使用 Redis 哈希结构 存储 用户信息 的示意图如下:

    相比于使用 字符串序列化 缓存 用户信息,哈希类型 变得更加 直观,并且在 更新操作 上会 更加便捷。可以将每个用户的 id 定义为 键后缀,多对 field-value 对应每个用户的 属性

  • 相关阅读:
    smary里Js正则表达式不正常
    php7下对微信支付退款申请通知的解密处理
    apache下设置deflate/gzip
    从大表里随机取若干行的效率问题
    Ecshop、Discuz! 等开源产品的局限
    mysql实现ORACLE的connect by prior父子递归查询
    SQL计算字符串里的子字符串出现个数
    UCENTER同步登录工作原理和配置要点
    云服务器:西部数码VS阿里云
    用ftp命令实现主机文件批量更新
  • 原文地址:https://www.cnblogs.com/songsongsun/p/14447615.html
Copyright © 2011-2022 走看看