美文网首页Redis
redis-API-哈希

redis-API-哈希

作者: PHP的艺术编程 | 来源:发表于2018-12-11 16:06 被阅读3次
API-哈希.png

文档地址

注意:
    在使用hGetAll时,如果哈希元素个数比较多,会存在阻塞Redis的可能。如果开发人员只需要获取部分field,可以使用hMGet,如果一定要获取全部
field-value,可以使用hscan命令,该命令会渐进式遍历哈希类型

内部编码

  • ziplist(压缩列表)
  • hashtable(哈希表)
编码的选择
  • 内部编码默认是ziplist(当子建个数比较少且没有大的value时)
  • 当有value大于64字节或者个数超过512,内部编码会由ziplist变为hashtable
编码的区别

因为Rziplist使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀

案例

1.缓存用户信息

ID name age sex
1 abner 20 1
2 abner2 21 2
(1)序列化哈希类型:将用户信息序列化后用一个键保存
hSet user:user_info key serialize(userInfo)

优点:字段内容可以和数据库对应

缺点:序列化和反序列化占用一定的开销,当子健比较多或者value较大的时候,会切换成hashtable消耗更多内存。

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

优点:简化编程,如果合理的使用序列化可以提高内存的使用效率。

缺点:序列化和反序列化有一定的开销,同时每次更新属性都需要把全
部数据取出进行反序列化,更新后再序列化到Redis中。

(2)哈希类型:每个用户属性使用键值对,但是只用一个键保存。
hMSet user:1 name abner 20 sex 1

优点:简单直观,如果使用合理可以减少内存空间的使用。

缺点:要控制哈希在ziplist和hashtable两种内部编码的转换,hashtable会
消耗更多内存。

相关文章

  • Redis-API-哈希

    哈希,也叫作字典或关联数组,指的是健值本身又是一个键值对结构。伪代码如下: 命令 设置值 获取值 删除字段 计算个...

  • redis-API-哈希

    文档地址 内部编码 ziplist(压缩列表) hashtable(哈希表) 编码的选择 内部编码默认是zipli...

  • redis-API-列表

    文档地址 列表类型有两个特点: 第一、列表中的元素是有序的,这就意味着可以通过索引下标获取某个元素或者某个范围内的...

  • redis-API-集合

    文档地址 内部编码 intset(整数集合): 当集合中的元素都是整数且元素个数小于set-maxintset-e...

  • 哈希 IN 哈希

    具体实例: 把下面的哈希值进行转换成哈希in哈希 转换后: 打印hash,哈希不能直接打印,必须在foreach循...

  • redis-API-有序集合

    内部编码 ziplist(压缩列表): 当有序集合的元素个数小于zset-max-ziplistentries配置...

  • redis-API-全局命令

    单线程架构 纯内存 非阻塞i/o 单线程避免了线程切换和竟态产生的消耗 概要: 使用多路复用技术 全局命令 查看所...

  • Java数据结构_哈希表_基本概念

    本文目标 哈希表的基本概念,哈希冲突,哈希函数 什么是哈希表 哈希表也叫做散列表(hash有剁碎的意思)哈希表是空...

  • 【perl】perl哈希(一)——哈希简介

    本课包含:哈希简介、哈希的操作、哈希函数、哈希的使用、综合实例 哈希简介 概念 hash,也被称作散列 很散,很多...

  • 「Redis源码解读」—数据结构(二)哈希表

    Redis的字典使用哈希表作为底层实现 知识点 1.数据结构 哈希节点 哈希表 类型处理函数 2.哈希 哈希算法 ...

网友评论

    本文标题:redis-API-哈希

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