Redis命令获取Redis群集上的所有可用密钥?

Alb*_*hew 17 redis node.js redis-cluster

我正在使用这个

redisManager.redisClient.keys('*example*', function (err, keys) {
})
Run Code Online (Sandbox Code Playgroud)

但它只从一个redis集群中提供密钥.如何从所有群集中获取密钥?

Shi*_*hur 1

您无法使用单个命令获取所有节点的密钥。您必须获取所有节点的密钥并将它们合并。参考 - https://github.com/antirez/redis/issues/1962

你可以做类似的事情。

var redis = require('redis');

redisConfig = new Array(
    {"port": 1234, "host": "192.168.1.2"},
    {"port": 5678, "host": "192.168.1.3"}
);

keys    = new Array();
allKeys = new Array();

for(i = 0; i < redisConfig.length; i++){
    redisClient = redis.createClient(redisConfig[i].port, redisConfig[i].host);    
      keys[i] = redisClient.keys('*example*', function (err, keys) {
      allkeys = [...new Set([...allKeys ,...keys[i]])];
    })
}
Run Code Online (Sandbox Code Playgroud)