簡體   English   中英

Redis PubSub 與 Jedis 重新連接

[英]Redis PubSub Reconnect with Jedis

嘗試包含與 azure redis autoreconnect if any.network error occurred in Redis PubSub connection 相關的代碼。 任何幫助/建議都將不勝感激。 下面是我的 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;
    }
    }

請參閱以下針對 Azure 的客戶端庫特定指南( 鏈接) Redis 的緩存以及Jedis (Java)的可用信息。

有一個PoolUsage.java示例和一個ClusterUsage.java示例。

至於 PubSub Reconnect 的具體例子,請看下面的 Stack Overflow 帖子: jedis pubsub and timeouts: how to listen infinitely as subscriber?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM