您好,登录后才能下订单哦!
本篇内容介绍了“如何使用hash代替string节省内存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
https://blog.csdn.net/javarrr/article/details/93380853
当哈希对象可以同时满足以下两个条件时, 哈希对象使用 ziplist 编码:
哈希对象保存的所有键值对的键和值的字符串长度都小于 64 字节;
哈希对象保存的键值对数量小于 512 个; ziplist 编码的数据底层是使用压缩列表作为底层数据结构
https://www.jianshu.com/p/dee0f1edc4e4
省内存的原因是新建一个 hash 对象时开始是用 ziplist(又称为 small hash)来存储的。 这个 ziplist 其实并不是 hash table,但是 ziplist 相比正常的 hash 实现可以节省不少 hash 本身需要的一些元数据存储开销。 尽管 ziplist 的添加,删除,查找都是 O(n),但是由于一般对象的 field 数量都不太多。 所以使用 ziplist 也是很快的,也就是说添加删除平均还是 O(1) 。 如果 field 或者 value 的大小超出一定限制后,redis 会在内部自动将 ziplist 替换成正常的 hash 实现, 这个限制可以在配置文件中指定 hash-zipmap-max-entries 参数来控制。 将 hash-zipmap-max-entries 设置为 1000 时,性能比较好,超过 1000 后 HSET 命令就会导致 CPU 消耗变得非常大。
“如何使用hash代替string节省内存”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。