(四)redis常用命令之hash

  • 概述
    hash这种数据结构也是非常常见的,在redis中,表示的是key仍然是string,value是hash类型的;redis中这种结构形如:key ->value={{filed1 value1},{filed2,filed2}…}

  • hset命令(创建hash,并且填充filed)
    格式:hset key filed value
    在这里插入图片描述

  • hget命令(获取某个hash的filed值)
    格式: hget key filed
    在这里插入图片描述

  • hdel命令(删除hash一个或者多个filed)
    格式:hdel key filed1 filed2…
    在这里插入图片描述

  • hlen命令(计算hash的filed个数)
    格式: hlen key
    在这里插入图片描述

  • hmset命令(批量设置hash的filed)
    格式: hmset key filed1 value filed2 value …
    在这里插入图片描述

  • hmget命令(批量获取hash的filed值)
    格式: hmget key filed1 filed2 …
    在这里插入图片描述

  • hexists命令(判断hash的filed是否存在)
    格式: hexists key filed
    在这里插入图片描述

  • hkeys命令(获取所有的fileds—>准确来说这个命令最好用hfileds)
    格式: hkeys key
    在这里插入图片描述

  • hvals命令(获取hash所有的filed的value)
    格式: hvals key
    在这里插入图片描述

  • hgetall命令(获取hash的所有键值对)
    格式:hgeetall key
    在这里插入图片描述
    注意:如果hash中的 filed比较多时,可能会导致redis阻塞,慎用,还是推荐使用hmget,获取部分

    扫描二维码关注公众号,回复: 9593131 查看本文章
  • hstrlen命令(计算hash某个filed的值的length)
    格式:hstrlen key filed
    在这里插入图片描述
    注意:可能是版本太低,不支持

  • 内部编码
    ziplist(压缩列表): 当hash元素个数小于hash-max-ziplist-entries并且每个元素值都小于hash-max-ziplist-value字节数
    hashtable(hashtable):当不满足上面条件的时候自动转换内部编码格式为hashtable
    在这里插入图片描述
    在这里插入图片描述
    注意:hash-max-ziplist-entries默认512;hash-max-ziplist-value默认64字节;可在配置文件中自己配置,最好还是使用默认值,默认值可能就是ziplist性能下降的临界点

  • 使用场景
    1.缓存功能(缓存记录信息,不需要序列化和反序列化,效率相对较高,比较直观)
    在这里插入图片描述
    a.如果从redis可以获取,那么直接返回
    b.如果从redis获取不到,那么查询mysql ,再将查询结果放入redis,返回结果
    在这里插入图片描述
    注意:目前我们可以通过两种方式来缓存用户信息 ①使用string,对用户信息进行序列化和反序列化,存储比较紧凑,节省内存开销,但是反序列化和序列化要消耗一定时间②使用hash,对用户信息直接键值对映射存取,比较消耗内存,但是不需要序列化和反序列化,效率较高

发布了65 篇原创文章 · 获赞 11 · 访问量 7165

猜你喜欢

转载自blog.csdn.net/weixin_38312719/article/details/95000202