【发布时间】:2014-09-07 22:01:06
【问题描述】:
我正在运行一个 redis 实例,其中存储了许多带有整数字段和值的哈希值。具体来说,有很多散列形式
{1: <int>, 2: <int>, ..., ~10000: <int>}
我最初使用 hash-max-ziplist-entries 的默认值运行 redis:
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
redis 使用了大约 3.2 GB 的内存。
然后我将这些值更改为
hash-max-ziplist-entries 10240
hash-max-ziplist-value 10000
并重新启动redis。我的内存使用量下降到大约 480 MB,但 redis 使用了 100% 的 CPU。我将值恢复为 512 和 64,并重新启动了 redis,但它仍然只使用了 480 MB 的内存。
我假设内存使用量下降了,因为我的很多哈希都存储为 ziplist。我猜想在更改值并重新启动 redis 后,它们会自动转换回哈希表,但事实并非如此。
那么,这些哈希是否仍以 ziplist 的形式存储?
【问题讨论】:
标签: redis