【问题标题】:Redis Scan Count in production生产中的 Redis 扫描计数
【发布时间】:2020-02-12 10:06:11
【问题描述】:

我正在替换 redis KEYS 命令以支持 SCAN。但是,密钥空间大约有 300 万个密钥。在不影响 I/O 性能的情况下,什么是一个好的 COUNT 参数?

【问题讨论】:

  • COUNT 是一种权衡 - 没有“好的”价值,这取决于您的环境和要求
  • @ItamarHaber 总的来说我认为
  • 绝对是一个明智的上限:)
  • @user1817347 你到底想要什么?你想要 redis 中的键总数吗?

标签: count redis key


【解决方案1】:

我也面临同样的问题。但我试过这个。希望,这会有所帮助...

getKeyList (pattern) {
    console.log('pattern', pattern)
    let found = []
    let cursor = '0'

    while(true){
      const getAsync = promisify(this.client.scan).bind(this.client)
      const reply = getAsync(cursor, 'MATCH', pattern)
      cursor = reply[0];
      if(reply[1] != false){
        found.push(reply[1])
      }
      if(cursor == 0){
        break
      }
    }
    return found
  }

*请注意,您必须根据需要操作返回。

【讨论】:

  • 虽然我在执行此操作时遇到了另一个问题。在搜索带有模式的键时,我没有得到预期值。它只是给了我第一个值,可能会退出循环或其他东西。如果您能找到任何解决方案,请告诉我。
猜你喜欢
  • 2016-05-30
  • 2015-10-26
  • 2021-06-05
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多