小编cod*_*010的帖子

如何使用 Jedis 连接到 AWS ElastiCache for Redis 集群?

以前,我们使用 Redis 时通过 AWS ElastiCache 禁用了集群模式。

我们使用 Jedis 的 Java 代码指向主单节点端点,用于读取和写入。

我们现在已经启用了集群模式。

我们现在已更改代码以指向新 Redis 集群的配置端点,但是现在每当接收请求时都会抛出错误,请参见下文:

Redis 不可用。继续使用队列 requestMessage 代替。org.springframework.data.redis.ClusterRedirectException:重定向:插槽 2356 到 [ipaddress]:6379。嵌套异常是 redis.clients.jedis.exceptions.JedisMovedDataException: MOVED 2356 [ipaddress]:6379

我们的配置代码如下:

    @Bean(name = "redisTemplate")
    public RedisTemplate<String, String> getRedisTemplate(JedisConnectionFactory jedisConnectionFactory) {
        RedisTemplate template = new RedisTemplate();
        template.setConnectionFactory(jedisConnectionFactory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setHashValueSerializer(new StringRedisSerializer());
        template.afterPropertiesSet();
        return template;
    }

    @Bean
    JedisConnectionFactory jedisConnectionFactory(Configuration config) {
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setHostName(config.get(HOST));
        jedisConnectionFactory.setPort(config.getInt(PORT));
        jedisConnectionFactory.setUsePool(true);
        jedisConnectionFactory.setPoolConfig(createJedisPoolConfig(config));
        jedisConnectionFactory.afterPropertiesSet();
        return jedisConnectionFactory;
    }

    JedisPoolConfig createJedisPoolConfig(Config config) {
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxTotal(config.getInt(MAX, …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services redis jedis cluster-mode

2
推荐指数
1
解决办法
6879
查看次数

标签 统计

amazon-web-services ×1

cluster-mode ×1

java ×1

jedis ×1

redis ×1