4

したがって、現在、JedisPoolConfig Bean では、パラメーター testOnBorrow を true に設定しています。これにより、リソースの取得が遅くなるようです。

Jedis が Redis からリソースを取得するのに 30 分かかるシナリオがありました (メソッド(redis.clients.jedis.BinaryJedis:exists:144 および java.lang.Thread:sleep) を数回呼び出してから、リソースを取得するか離脱します)。

私ができると思ったのは、パラメーター testOnBorrow を false に設定して、リソースを読み取る前に Redis への PING 呼び出しを防ぐことでした。

だから、私の質問(そして私は本当に私が答えを得ることを願っています)は次のとおりです:

  1. 「このパラメーターを設定すると、アプリはどうなりますか?」
  2. 「このソリューションは本当に効果的ですか?」
  3. 「読むのが遅いというこの問題に対するより良い解決策はありますか?」
4

1 に答える 1

12

JedistestOnX設定は、特定のシナリオで Redis PING コマンドを送信するだけです。testOnBorrowプールから接続を受信したときにそれらを送信します。

これを無効にすると、検証をスキップするため、Redis での作業が高速になります。つまり、TTL が 1 つ少なくなります。アプリは不正な接続オブジェクトを処理する方法を知っている必要がありますが、これはテストが有効になっている場合にも当てはまります。これは、テスト後および使用前にも接続が閉じる/ドロップする可能性があるためです。

とはいえ、30 分は永遠であり、PING 要求を送信するため、ほとんど発生しません。完了したら接続をプールに戻して、プールのサイズがアプリケーションの使用に十分な大きさであることを確認してください。

于 2016-05-10T11:22:58.763 に答える