温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用hash代替string节省内存

发布时间:2021-06-26 14:19:03 来源:亿速云 阅读:224 作者:chen 栏目:大数据

本篇内容介绍了“如何使用hash代替string节省内存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  • https://blog.csdn.net/javarrr/article/details/93380853

  • 当哈希对象可以同时满足以下两个条件时, 哈希对象使用 ziplist 编码:

  1. 哈希对象保存的所有键值对的键和值的字符串长度都小于 64 字节;

  2. 哈希对象保存的键值对数量小于 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节省内存”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI