Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cluster nodes is empty on elasticache #1846

Open
madhur opened this issue Dec 29, 2023 · 0 comments
Open

Cluster nodes is empty on elasticache #1846

madhur opened this issue Dec 29, 2023 · 0 comments

Comments

@madhur
Copy link

madhur commented Dec 29, 2023

I am having a wierd issue, which I am unable to figure out. Basically, I am trying to flush the redis elasticache on aws running Redis 7.0.7.

Using node v14 with ioredis 5.3.2

Here is the simple code:

const Redis = require('ioredis');

// Replace these with your own ElastiCache endpoint and port
const clusterEndpoint = 'hostname';
const clusterPort = 6379;

// Initialize a new Redis cluster instance
const cluster = new Redis.Cluster(
  [
    { host: clusterEndpoint, port: clusterPort },
    // Add more nodes here if you have additional nodes in your cluster
    // { host: 'node2.example.cache.amazonaws.com', port: 6379 },
  ],
);

// Function to flush all keys in the cluster nodes

function flushAllKeysInCluster() {
    const nodes = cluster.nodes();
    console.log(nodes);
   let promise = Promise.all(nodes.map(function (node) {
  	return node.flushdb('async');
   }));
   return promise;
}

// Call the flushAllKeysInCluster function
flushAllKeysInCluster()
  .then(() => {
    console.log('All nodes flushed successfully.');
  })
  .catch((err) => {
    console.error(`Error flushing keys in the cluster: ${err.message}`);
  });

The issue is that console.log(nodes) prints the empty array [] .

I am able to connect the elasticache using redis-cli. Here is the debug output:

DEBUG=ioredis:* node rediscleanup.js 
  ioredis:cluster status: [empty] -> connecting +0ms
[]
All nodes flushed successfully.
  ioredis:cluster resolved hostname ****.amazonaws.com to IP 10.24.221.92 +25ms
  ioredis:cluster:connectionPool Reset with [ { host: '10.24.221.92', port: 6379 } ] +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.221.92:6379 as master +6ms
  ioredis:redis status[10.24.221.92:6379]: wait -> wait +0ms
  ioredis:cluster getting slot cache from 10.24.221.92:6379 +8ms
  ioredis:redis status[10.24.221.92:6379 (ioredis-cluster(refresher))]: wait -> wait +2ms
  ioredis:redis status[10.24.221.92:6379 (ioredis-cluster(refresher))]: wait -> connecting +5ms
  ioredis:redis queue command[10.24.221.92:6379 (ioredis-cluster(refresher))]: 0 -> cluster([ 'SLOTS' ]) +0ms
  ioredis:cluster:subscriber selected a subscriber 10.24.221.92:6379 +0ms
  ioredis:redis status[10.24.221.92:6379 (ioredis-cluster(subscriber))]: wait -> wait +1ms
  ioredis:cluster:subscriber started +1ms
  ioredis:redis status[10.24.221.92:6379 (ioredis-cluster(refresher))]: connecting -> connect +7ms
  ioredis:redis status[10.24.221.92:6379 (ioredis-cluster(refresher))]: connect -> ready +1ms
  ioredis:connection set the connection name [ioredis-cluster(refresher)] +0ms
  ioredis:redis write command[10.24.221.92:6379 (ioredis-cluster(refresher))]: 0 -> client([ 'setname', 'ioredis-cluster(refresher)' ]) +0ms
  ioredis:connection send 1 commands in offline queue +4ms
  ioredis:redis write command[10.24.221.92:6379 (ioredis-cluster(refresher))]: 0 -> cluster([ 'SLOTS' ]) +4ms
  ioredis:cluster cluster slots result count: 10 +24ms
  ioredis:cluster cluster slots result [0]: slots 0~1638 served by [ '10.24.222.56:6379', '10.24.223.149:6379' ] +0ms
  ioredis:cluster cluster slots result [1]: slots 1639~3277 served by [ '10.24.221.92:6379', '10.24.223.242:6379' ] +1ms
  ioredis:cluster cluster slots result [2]: slots 3278~4916 served by [ '10.24.223.133:6379', '10.24.220.220:6379' ] +0ms
  ioredis:cluster cluster slots result [3]: slots 4917~6555 served by [ '10.24.221.19:6379', '10.24.222.85:6379' ] +0ms
  ioredis:cluster cluster slots result [4]: slots 6556~8193 served by [ '10.24.220.94:6379', '10.24.223.181:6379' ] +0ms
  ioredis:cluster cluster slots result [5]: slots 8194~9831 served by [ '10.24.222.137:6379', '10.24.221.229:6379' ] +1ms
  ioredis:cluster cluster slots result [6]: slots 9832~11469 served by [ '10.24.220.206:6379', '10.24.222.3:6379' ] +0ms
  ioredis:cluster cluster slots result [7]: slots 11470~13107 served by [ '10.24.221.53:6379', '10.24.220.108:6379' ] +1ms
  ioredis:cluster cluster slots result [8]: slots 13108~14745 served by [ '10.24.221.239:6379', '10.24.222.48:6379' ] +1ms
  ioredis:cluster cluster slots result [9]: slots 14746~16383 served by [ '10.24.222.122:6379', '10.24.220.166:6379' ] +0ms
  ioredis:cluster:connectionPool Reset with '[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object  ... <REDACTED full-length="319">' +51ms
  ioredis:cluster:connectionPool Connecting to 10.24.222.56:6379 as master +1ms
  ioredis:redis status[10.24.222.56:6379]: wait -> wait +30ms
  ioredis:cluster:connectionPool Connecting to 10.24.223.149:6379 as slave +0ms
  ioredis:redis status[10.24.223.149:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.223.242:6379 as slave +0ms
  ioredis:redis status[10.24.223.242:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.223.133:6379 as master +1ms
  ioredis:redis status[10.24.223.133:6379]: wait -> wait +1ms
  ioredis:cluster:connectionPool Connecting to 10.24.220.220:6379 as slave +0ms
  ioredis:redis status[10.24.220.220:6379]: wait -> wait +2ms
  ioredis:cluster:connectionPool Connecting to 10.24.221.19:6379 as master +3ms
  ioredis:redis status[10.24.221.19:6379]: wait -> wait +2ms
  ioredis:cluster:connectionPool Connecting to 10.24.222.85:6379 as slave +1ms
  ioredis:redis status[10.24.222.85:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.220.94:6379 as master +0ms
  ioredis:redis status[10.24.220.94:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.223.181:6379 as slave +0ms
  ioredis:redis status[10.24.223.181:6379]: wait -> wait +1ms
  ioredis:cluster:connectionPool Connecting to 10.24.222.137:6379 as master +1ms
  ioredis:redis status[10.24.222.137:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.221.229:6379 as slave +0ms
  ioredis:redis status[10.24.221.229:6379]: wait -> wait +1ms
  ioredis:cluster:connectionPool Connecting to 10.24.220.206:6379 as master +1ms
  ioredis:redis status[10.24.220.206:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.222.3:6379 as slave +0ms
  ioredis:redis status[10.24.222.3:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.221.53:6379 as master +1ms
  ioredis:redis status[10.24.221.53:6379]: wait -> wait +1ms
  ioredis:cluster:connectionPool Connecting to 10.24.220.108:6379 as slave +0ms
  ioredis:redis status[10.24.220.108:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.221.239:6379 as master +0ms
  ioredis:redis status[10.24.221.239:6379]: wait -> wait +1ms
  ioredis:cluster:connectionPool Connecting to 10.24.222.48:6379 as slave +1ms
  ioredis:redis status[10.24.222.48:6379]: wait -> wait +1ms
  ioredis:cluster:connectionPool Connecting to 10.24.222.122:6379 as master +1ms
  ioredis:redis status[10.24.222.122:6379]: wait -> wait +0ms
  ioredis:cluster:connectionPool Connecting to 10.24.220.166:6379 as slave +0ms
  ioredis:redis status[10.24.220.166:6379]: wait -> wait +0ms
  ioredis:cluster status: connecting -> connect +32ms
  ioredis:redis status[10.24.223.133:6379]: wait -> connecting +10ms
  ioredis:redis queue command[10.24.223.133:6379]: 0 -> cluster([ 'INFO' ]) +0ms
  ioredis:redis status[10.24.223.133:6379]: connecting -> connect +1ms
  ioredis:redis write command[10.24.223.133:6379]: 0 -> info([]) +0ms
  ioredis:redis status[10.24.221.92:6379 (ioredis-cluster(refresher))]: ready -> close +3ms
  ioredis:connection skip reconnecting since the connection is manually closed. +58ms
  ioredis:redis status[10.24.221.92:6379 (ioredis-cluster(refresher))]: close -> end +4ms
  ioredis:redis status[10.24.223.133:6379]: connect -> ready +4ms
  ioredis:connection send 1 commands in offline queue +4ms
  ioredis:redis write command[10.24.223.133:6379]: 0 -> cluster([ 'INFO' ]) +0ms
  ioredis:cluster status: connect -> ready +24ms
@madhur madhur changed the title Cluster nodes is empty on elaticache Cluster nodes is empty on elasticache Dec 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant