Redis が再起動され、ネットワークが中断されて通常に戻った後、アプリケーションは自己回復できる必要があります。以下では、例として Java 言語の jedis クライアントを使用します:
1 、パブリッシャーとして
#Jedis オブジェクトをシングルトンとして使用することはできず、ネットワークが中断された後に Jedis オブジェクトは自己回復できません。メッセージをパブリッシュするたびに、JedisPool から Jedis オブジェクトを取得して、set メソッドを呼び出す必要があります。
2. サブスクライバとして
#ネットワークが中断された場合、psubscribe() メソッドはブロックして例外をスローしなくなるため、while ループを使用してメソッド内で例外を処理できます。
while(true){ Jedis redis = this.jedisPool.getResource(); try{ redis.psubscribe(this, channelArray); }catch(JedisConnectionException e){ logger.warn("Exception :", e); logger.warn("Exit redis psubscribe, retry after 1 second"); }catch(Exception e){ logger.error("Exception:", e); } try{ Thread.sleep(1000); }catch(Exception unused){ } try{ if(redis != null){ redis.close(); } }catch(Exception unused){ } }
redis の詳細については、redis 入門チュートリアル 列に注目してください。
以上がredis が切断され、再接続されましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。