ioredis-ClusterAllFailedError:无法刷新插槽缓存

问题描述 投票:4回答:1

我正在处理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。其他人处理过这个问题吗?

谢谢。

node.js amazon-web-services redis amazon-elasticache
1个回答
0
投票

以下为我工作。

Redis版本AWS ElastiCache上的[[5.0.4群集,已启用TLSAUTH

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。
© www.soinside.com 2019 - 2024. All rights reserved.