gpt4 book ai didi

redis - 为什么 Redis Hash Bucket 省磁盘?

转载 作者:IT王子 更新时间:2023-10-29 06:15:02 26 4
gpt4 key购买 nike

我读了这个博客:http://instagram-engineering.tumblr.com/post/12202313862/storing-hundreds-of-millions-of-simple-key-value-pairs

Instagram 的人做得非常好,他们详细说明了如何节省磁盘空间。但是,我想要 zipmap 哈希桶可以节省内存的一些详细原因?是不是因为不需要分配很多long类型而只需要int类型?

谢谢你们。

最佳答案

这里主要要理解的是,指针占用的空间很大。如果您要序列化一个散列并将其保存为一个没有键值指针的字符串,您将节省大量空间,因为您将从每对指针变为 0 个指针。

Redis 是一个内存数据存储,希望在不严重影响性能的情况下帮助您节省尽可能多的空间。为实现这一点,它将简单地序列化小散列,并在执行散列操作时完全搜索它们。实际上这是 O(n),但由于散列很小,因此不会影响性能,同时可以节省大量内存。一旦散列变大,Redis 会将其转换为实际散列,它将开始占用更多空间,但现在有规律的散列 O(1) 查找、写入、删除时间。 Redis provides the "hash-max-zipmap-entries" setting among many similar settings to let you configure exactly where this conversion point is.因此,Instagram 工程师想到的是,他们可以将此转换点设置为高于默认值,从而以更高的 CPU 负载为代价节省更多空间。对他们来说,这是一个很好的权衡。我强烈推荐阅读 here获取更多信息。

关于redis - 为什么 Redis Hash Bucket 省磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24714868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com