【问题标题】:Redis key matching performanceRedis 键匹配性能
【发布时间】:2012-10-05 05:31:37
【问题描述】:

我们将 Redis 用于键值普通缓存和缩略图缓存。在拥有 100 多个站点的机器中,Redis 缩略图数据库有 500000 个没有独特前缀的键,例如:

"sorl-thumbnail||image||6c4a67b016c4f867b9fdd3e5c5609887"
"sorl-thumbnail||image||ad7c56bd5461e9061604867d056b5de8"
"sorl-thumbnail||image||655ad6bb21129326ef4618df83a0f1f7"
"sorl-thumbnail||thumbnails||871641bfefa6250518fe52b86cf742c9"
"sorl-thumbnail||thumbnails||570565770557013bada8c1fe2cb3d658"
"sorl-thumbnail||image||c01134f4a8746d24c6d62543419bbb3a"
"sorl-thumbnail||image||ecc5afb281bc78fefe3046e2cc3f972a"
"sorl-thumbnail||image||670f1f1b6c5660f46053a484e22a4071"

使用 001,002,003,... 100 之类的前缀作为站点 ID 是否会提高访问 Redis 的性能?

【问题讨论】:

  • 好吧,如果您为每个站点使用哈希而不是单独的键来存储它们的缩略图,它可能会更节省内存,但除此之外,只要您知道键名,我们仍然谈论 O(1) 时间复杂度(除非你使用 KEYS,我希望你不要这样做)
  • 您好,我正在使用 get 和 set 处理字符串,例如:GET "sorl-thumbnail||image||670f1f1b6c5660f46053a484e22a4071"
  • 好的,那么使用前缀你会发现性能没有差异。

标签: redis sorl-thumbnail


【解决方案1】:

因为主字典的数据结构是哈希表而不是树,所以如果您有大量具有公共前缀的键,则不会真正影响 Redis 的总体性能。

用一些有区别的数据为密钥添加前缀并不会真正提高性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多