ioredis クラスタの複数ノードへのコマンド送信
ioredis にて、クラスタの複数ノードにコマンドを送信したいと考えています(flushallやkeysなど)。
以下の資料を確認し、Cluster#nodes で取得したノードリストにより処理を行おうと思ったのですが、Cluster#nodes を呼び出すと空配列が返ってくるため処理を続行することができません。
https://github.com/luin/ioredis/blob/master/README.md
「Running commands to multiple nodes」の項目
いったんノードリスト確認のため、以下のようなソースコードでテストしています。
var Redis = require('ioredis');
var cluster = new Redis.Cluster([{
host: '127.0.0.1',
port: 7000
}, {
host: '127.0.0.1',
port: 7001
}, {
host: '127.0.0.1',
port: 7002
}]);
console.log(cluster.nodes());
クラスタを出力してみると以下のような状態で、nodes に値が入っていませんでした。
Cluster {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
slots: [],
retryAttempts: 0,
delayQueue: DelayQueue { queues: {}, timeouts: {} },
offlineQueue:
Denque {
_head: 0,
_tail: 0,
_capacityMask: 3,
_list: [ <4 empty items> ] },
isRefreshing: false,
connectionEpoch: 1,
options:
{ showFriendlyErrorStack: false,
clusterRetryStrategy: [Function: clusterRetryStrategy],
enableOfflineQueue: true,
enableReadyCheck: true,
scaleReads: 'master',
maxRedirections: 16,
retryDelayOnFailover: 100,
retryDelayOnClusterDown: 100,
retryDelayOnTryAgain: 100,
slotsRefreshTimeout: 1000,
slotsRefreshInterval: 5000,
dnsLookup: [Function: lookup] },
scriptsSet: {},
startupNodes:
[ { host: '127.0.0.1', port: 7000 },
{ host: '127.0.0.1', port: 7001 },
{ host: '127.0.0.1', port: 7002 } ],
connectionPool:
ConnectionPool {
domain: null,
_events:
{ '-node': [Array],
'+node': [Array],
drain: [Function],
nodeError: [Function] },
_eventsCount: 4,
_maxListeners: undefined,
redisOptions: undefined,
nodes: { all: {}, master: {}, slave: {} },
specifiedOptions: {} },
subscriber:
ClusterSubscriber {
connectionPool:
ConnectionPool {
domain: null,
_events: [Object],
_eventsCount: 4,
_maxListeners: undefined,
redisOptions: undefined,
nodes: [Object],
specifiedOptions: {} },
emitter: [Circular],
started: false,
subscriber: null },
status: 'connecting' }
何か間違えている処理、不足している処理などがありましたらご教示頂けたらと思います。