Мне удалось подключиться к Amazon ElastiCache (Redis) с помощью библиотек Node.js, которые redis
и redis-clustr
без ошибок.Но получаю ошибку couldn't get slot allocation
всякий раз, когда я пытаюсь установить пару ключ-значение в приложении Node.js, работающем на экземпляре Amazon EC2.Мой Amazon ElastiCache имеет один основной узел и одну реплику (то есть два узла).
Вот пример кода, используемый для подключения:
const redis_cluster = require('redis-clustr');
const redis_client = require('redis');
let redis = new redis_cluster({
servers: [
{
host: global.gConfig.redis.redis_host,
port: global.gConfig.redis.redis_port
}
],
createClient: (port, host) => {
return redis_client.createClient(port, host);
}
});
// connection error
redis.on('error', err => {
// log the error to log file
global.gLogger.log('error', err.message, {stack: err.stack});
});
// add to global variables
global.gRedisClient = redis;
После того, как я установил соединение с AmazonElastiCach, приведенный ниже пример кода показывает, как я получаю значения из Redis:
gRedisClient.mget(['run:123', 'walk:123'], (err, replies) => {...});
Я использую Redis multi()
для операций bach и mget()
для одновременного получения значений.Я новичок в использовании Amazon ElastiCach, любая помощь будет оценена.Спасибо.