Creé un clúster de Redis MemoryDB con 2 nodos en AWS:
Me conecto a él usando la biblioteca de nodos redis v4.0.0 así:
import { createCluster } from 'redis'; (async () => { const REDIS_USERNAME = 'test-username'; const REDIS_PASSWORD = 'test-pass'; const cluster = createCluster({ rootNodes: [ { url: `rediss://node1.amazonaws.com:6379`, }, { url: `rediss://node2.amazonaws.com:6379`, }, ], defaults: { url: `rediss://cluster.amazonaws.com:6379`, username: REDIS_USERNAME, password: REDIS_PASSWORD, } }); cluster.on('error', (err) => console.log('Redis Cluster Error', err)); await cluster.connect(); console.log('connected to cluster...'); await cluster.set('key', 'value'); const value = await cluster.get('key'); console.log('Value', value); await cluster.disconnect(); })();
Pero a veces recibo el error ReplyError: MOVED 12539 rediss://node2.amazonaws.com:6379
y no puedo obtener el valor de la clave.
¿Tiene alguna idea de si hay algún problema con la configuración del clúster o con el código que usa la biblioteca de nodos redis?
Editar: lo probé con la biblioteca ioredis y funciona, por lo que hay algún problema con la biblioteca redis .
Versión de Node.js: 16
Versión del servidor Redis: 6