我将如何预测 redis 中排序集的内存使用情况?

rye*_*hus 6 memory sortedset redis

我正在尝试预测使用排序集时 Redis (v6.2.5) 集群上的内存使用情况。从我最初的研究中我可以看出,密钥的长度、每个单独元素的长度以及每个单独分数的长度都会对内存使用产生影响。

这是我到目前为止所拥有的:

  • 使用 1 到 8 个字符之间的键、长度为 1 的元素和长度为 1 的分数,我发现使用了 63 字节的内存。
  • 9 个字符的密钥会增加 8 个字节(71 个字节)的内存使用量
  • 8 个字符密钥、8 个字符元素和 1 个字符分数将使用量增加 4 个字节(75 个字节)
  • 8 个字符的键、元素和分数又增加了 4 个字节的使用量 (79)

我可以看到一种模式,但我希望 Redis 专家可以帮助我在源代码中或通过解释 Redis 中排序集的实现来理解这一点。

FWIW,我发现这表明分数存储为长度为128的字符数组。https://github.com/redis/redis/blob/c5e6a6204c4cf57f85e7c83a9b4e99f1a7204fd2/src/t_zset.c#L1029

任何帮助表示赞赏。