2016-10-07 16 views
1

私は、私のAPIアプリケーションのキーバリューストアとしてredisを使用することを検討しています。 apiは、基本的に、レディスへのクライアント接続を1つだけ必要とします。私は確信していないことは、私は接続を永遠に開いておく必要がありますか?または、私は、赤目から値を設定または取得する必要があるときにのみ接続を開く必要がありますか?Redis接続を永続的に保つ必要がありますか?

接続を開くことは高価な操作であると思うかもしれません。その意味で、永遠の接続を好むべきです。一方、接続を常に開いた状態に保つことは、必要なときにのみ接続を開くことと同じくらい安全ではありません。また、開いている長い接続を開いているとタイムアウトになる可能性があります。 何らかの理由で接続が失敗した場合、redisは再接続を試みますか? redisは長時間開いている接続をどれくらいうまく処理していますか?どんな助けもありがとう!

+0

が 'httpsを見てみましょう。一般的には、永続的な接続プールを使用して、データベース上ですばやく操作を実行できるようにすることをお勧めします。そして、「いつも開いているコネクションを安全に保つ」ということはどういう意味ですか?永続的な接続を開くときにログイン資格情報を1回だけ送信します。すべてのDBアクションで新しい接続を使用する場合は、毎回資格情報も送信されます... –

+0

しかし、私は1つの接続だけが必要です、それらの数ではありませんか?また、それは私が望む約束をサポートしていないようです。あなたはまだ接続プールが私にとって良いと思いますか?あなたはセキュリティに関して良い点があります。私が意味することは、接続が常に開いていれば、理論的には、アプリケーションにアクセスできる人は、必要なときに開くよりも簡単にその接続を使用できるということです。 –

+1

すでに確立されている接続をどのように乗っ取ることができるかわかりません。接続プールは、常にデータベースへの接続が可能であることを保証する方法です。これにより、さらに多くのクエリを同時に実行できます。 –

答えて

0

Redis自動接続は、使用しているredis-clientによって異なります。たとえば、 ioredisを使用すると、接続を手動で終了した場合を除き、Redisへの接続が失われたときに自動的に再接続が試行されます。

出典:// www.npmjs.com /パッケージ/ Redisの接続-pool`:https://github.com/luin/ioredis#auto-reconnect

関連する問題