我正在处理ioredis和Elasticache的ClusterAllFailedError: Failed to refresh slots cache.
问题。这是我的集群配置
const clusterOptions = {
enableReadyCheck: true,
retryDelayOnClusterDown: 300,
retryDelayOnFailover: 1000,
retryDelayOnTryAgain: 3000,
slotsRefreshTimeout: 200000000000000,
clusterRetryStrategy: (times) => Math.min(times * 1000, 10000),
dnsLookup: (address, callback) => callback(null, address),
scaleReads: 'slave',
showFriendlyErrorStack: true,
redisOptions: {
keyPrefix: config.queue.prefix,
autoResubscribe: true,
autoResendUnfulfilledCommands: true
}
}
const redisClientInstance = new Redis.Cluster([{ host: '', port: ''}], clusterOptions);
但是尝试访问Redis始终会导致Failed refresh slots cache
。其他人处理过这个问题吗?
谢谢。
以下为我工作。
Redis版本:AWS ElastiCache
上的[[5.0.4群集,已启用TLS
和AUTH
。
ioredis版本:4.16.0
连接代码:const redis = new Redis.Cluster(
[{ "host": <ELASTI_CACHE_CONFIGURATION_ENDPOINT> }], {
dnsLookup: (address, callback) => callback(null, address),
redisOptions: {
tls: true,
password: <ELASTI_CACHE_REDIS_AUTH>
}
});
确保您在正确的VPC,子网和安全组中,以正确的IAM角色连接到ElastiCache。