redis与绝地重新连接

sqyvllje  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(455)

如果redis pubsub连接中发生任何网络错误,尝试包含与azure redis autoreconnect相关的代码。任何帮助/建议都是值得赞赏的。下面是我的redis配置代码。

public class RedisConfig 
   {    
    @Bean
    JedisConnectionFactory jedisConnectionFactory() {
        JedisConnectionFactory jedis = new JedisConnectionFactory();
        jedis.setHostName("redishostname");
        jedis.setPassword("redispassword");
        jedis.setPort(redisport);
        return jedis;
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        final RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
        template.setConnectionFactory(jedisConnectionFactory());
        template.setValueSerializer(new GenericToStringSerializer<Object>(Object.class));
        return template;
    }   

    @Bean
    RedisMessageListenerContainer redisContainer() {
        final RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(jedisConnectionFactory());
        container.setTaskExecutor(Executors.newFixedThreadPool(4));     
        return container;
    }
    }
vxf3dgd4

vxf3dgd41#

请参阅以下针对azure cache for redis的特定于客户端库的指南(链接)和可用于jedis(java)的信息。
有一个poolusage.java示例和一个clusterusage.java示例。
至于pubsub重新连接的一个具体示例,请参见下面的堆栈溢出帖子:jedis pubsub和timeouts:如何作为订户无限监听?

private AkkaStarter2(){
//0 specifying no timeout.. Overlooked this 100 times
sub = new Jedis(REDISHOST, REDISPORT,0);
akkaListener = new AkkaListener();
}

相关问题