ホームページ >データベース >Redis >redis が切断され、再接続されました

redis が切断され、再接続されました

尚
転載
2020-04-24 09:13:333306ブラウズ

redis が切断され、再接続されました

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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。