- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在运行一个 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 的内存。
我假设内存使用率下降是因为我的很多哈希值都存储为 ziplists。我猜想在更改值并重新启动 redis 后,它们会自动转换回哈希表,但事实并非如此。
那么,这些哈希值是否仍存储为 ziplist?
最佳答案
它们仍然是优化的“ziplist”格式。
如果散列最终有超过 hash-max-ziplist-entries
个条目,或者如果值更小,Redis 将以优化的方式存储散列(通过“hset”或类似方式)超过 hash-max-ziplist-values
字节。如果这些限制被打破,Redis 将“正常”存储项目,即。未优化。
文档中的相关部分 ( http://redis.io/topics/memory-optimization ):
如果特殊编码的值会溢出配置的最大大小,Redis 会自动将其转换为正常编码。
一旦值以优化方式写入,它们就不会“解压缩”,即使您稍后降低最大大小设置也是如此。这些设置将应用于 Redis 存储的新 key 。
关于redis - 更改 hash-max-ziplist-entries 后,redis 哈希是否保留在 ziplist 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715165/
我正在运行一个 redis 实例,我在其中存储了很多具有整数字段和值的哈希值。具体来说,有很多形式的散列 {1: , 2: , ..., ~10000: } 我最初使用 hash-max-ziplis
基地提供ZipList ,它只是 [] 的包装器在哪里 基于 zip而不是笛卡尔积。这不是默认值,因为它与 Monad [] 不一致。例如,但有些人觉得它更直观,而且这两种行为在不同的情况下都很有用。
我如何编译和执行 Redis ziplist.c作为单独的可执行文件? 我只想执行 ziplist.c 主函数。 最佳答案 您可以使用以下命令: gcc -std=c99 -O2 -DZIPLIST_
此前我们学习了常见的reids数据类型,这些数据类型都需要底层的数据结构的支持,现在我们来看看redis常见的底层数据结构:dict、ziplist、quicklist。 1 redis di
GHC Prelude 中列表的默认 monoid 是串联。 [1,2,3] <> [4,5,6]变成 [1,2,3] ++ [4,5,6]因此[1,2,3,4,5,6] 我想编写一个行为如下的 Zi
我想为我的自定义列表实现一个 Applicative 实例。 import Test.QuickCheck import Test.QuickCheck.Checkers import Test.Qu
这来自Haskell from First Principles一书中的练习。本练习是为 ZipList' 实现 Applicative,这类似于 Prelude 的 ZipList。书上有这个提示
假设我有一个数字列表和函数列表: val xs: List[Int] = List(1, 2, 3) val fs: List[Int => Int] = List(f1, f2, f3) 现在我想使
Typeclassopedia提出这个问题: Determine the correct definition of pure for the ZipList instance of Applicat
我正在从learn-you-a-haskell 书中学习Haskell 中的应用仿函数。 但是每当我尝试在 ghci 中输入以下代码时: :{ instance Applicative ZipList
应用程序的两个著名示例是 monad 和 ziplist。还有其他例子吗? 最佳答案 来自 Time flies like an applicative functor通过康纳麦克布莱德: Struc
我目前正在学习 Haskell 中的应用程序。如果我没记错的话,列表有两个不同的 Applicative 实例(List 和 ZipList - 第二个被定义为包装列表值的新类型)。 ZipList
我的问题示例:HMSET myhash field1 value1 field2 value2 而myhash只有这两个字段。 主要问题是如何计算hash-max-ziplist-value,以便我的
我是一名优秀的程序员,十分优秀!