私はこれを使用しています
redisManager.redisClient.keys('*example*', function (err, keys) {
})
ただし、redis クラスターの 1 つのみからのキーのみを提供します。すべてのクラスターからキーを取得するにはどうすればよいですか?
私はこれを使用しています
redisManager.redisClient.keys('*example*', function (err, keys) {
})
ただし、redis クラスターの 1 つのみからのキーのみを提供します。すべてのクラスターからキーを取得するにはどうすればよいですか?
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]])];
})
}