【问题标题】:Redis: what is better: SCAN/HSCAN or HVALS. When to use themRedis:哪个更好:SCAN/HSCAN 或 HVALS。何时使用它们
【发布时间】:2021-10-20 08:03:07
【问题描述】:

从性能的角度来看,什么更好?如何聪明地使用它们?

我在 redis 中有哈希实体。一个哈希名称有大约 150K 键值对(这是一项要求) 我有一个处理响应等的 NodeJS 应用程序。 将使用“node-redis-scan”eachScan()、“redis”hvals() 等库

我可以使用:

  1. “redis”hvals()。 REDIS 命令:hvals 'my hash name' 一次调用即可获得 15 万个值

  2. "node-redis-scan" eachScan() 和选项。 REDIS 命令:hscan 'my hash name' 0 MATCH * COUNT 15000 将使用游标直到其值为 0 并过滤结果以仅在代码级别获取值。

哪个选项更好,什么时候更好?

【问题讨论】:

    标签: node.js performance hash redis node-redis


    【解决方案1】:

    恕我直言,除非我清楚地知道哈希图的大小非常小,否则我不会使用 HVALS。

    为什么?与为什么不使用 KEYS 命令的答案相同:如果有很大的响应,它可以阻塞主线程。 HSCAN 返回键和值,可能超出您的需要。但是因为它是可迭代的,所以它可以扩展答案并且不会长时间阻塞主线程。

    我用 Java 开发了一个小库(在 github 中搜索 InterruptedJedisLocks),我已经使用了很多次 HSCAN 并且没有使用 HVALS 和 HKEYS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-20
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 2019-09-15
      • 2019-09-21
      • 2011-04-09
      相关资源
      最近更新 更多