哈希

作者: lookphp | 来源:发表于2019-07-10 16:24 被阅读0次

哈希,也叫字典、map、关联数组。
在redis中,哈希类型,是指键值本身,又是一个键值对结构。
哈希类型的映射关系叫做 field-value。


字符串和哈希类型对比

命令

  • 设置值 hset key field value
  • 获取值 hget key field
  • 删除field hdel key field [field ...]
  • 计算field的个数 hlen key
  • 批量设置或获取 field-value
    hmset key field value [field value ...]
    hmget key field [field ...]
  • 判断field是否存在 hexists key field
  • 获取所有field hkeys key
  • 获取所有value hvals key
  • 获取所有的 field-value hgetall key 如果哈希元素个数较多,会存在阻塞redis的可能。
image.png

内部编码

  • ziplist (压缩列表) 节省内存,适用于小数据量的 ,field个数小于512个,value小于64字节
  • hashtable (哈希表)

使用场景

MySQL中存储的用户信息 Redis用哈希类型缓存用户信息

哈希类型和关系型数据库有两点不同:

  • 哈希类型是稀疏的。
  • 关系型数据库可以做复制的关系查询。

缓存用户信息方案

  • 原生字符串类型:每个属性一个键。
    set user:1:name tom
    set user:1:age 12
    set user:1:city beijing

  • 序列化字符串类型:将用户信息序列化后用一个键保存。
    set user:1 serialize (userInfo)

  • 哈希类型:每个用户属性使用一对field-value,但是只用一个键保存。
    hmset user:1 name tom age 12 city beijing

相关文章

网友评论

      本文标题:哈希

      本文链接:https://www.haomeiwen.com/subject/ueshkctx.html