sql >> データベース >  >> NoSQL >> Redis

Rails 4、Puma、SidekiqでRedis接続を構成するにはどうすればよいですか?

    Redisはシングルスレッドですが、純粋なCで記述されており、内部でイベントループを使用し、接続を非同期で処理するため、同じ数のリクエストが提供されても、接続数は影響しません。ネットワーク遅延、Rubyがコンパイルおよび最適化されたCよりも遅いなどの理由で、アプリケーションがリクエストを生成するよりも速くリクエストを処理できるため、シングルスレッドであることを心配する必要はありません。

    接続の数を増やすと、接続のロックを解除するためにネットワーク経由で応答が配信されるのを待つ必要がなく、さらにrubyが並列IOを実行できるため、異なるスレッドからの同時リクエストに役立ちます。

    また、接続のチェックアウト時間が予想/許容範囲よりも悪くなり、対応するスレッド/ワーカーが待機中にアイドリングしている場合にプールが小さすぎるかどうかを判断できるため、コードのベンチマークを行い、実際の使用状況と動作パターンをよく調べてください。

    反対に、接続数の制限をすべて使用しないことをお勧めします。これらの追加の接続が必要になる場合があります。例:

    • グレースフル/「ゼロダウンタイム」dyno再起動(「プリブート」)の場合、古いプロセスがしばらく実行されているため、2回の接続が必要です
    • コンソールから/直接接続して、予期しない高負荷が発生したときに内部にあるデータを確認できるようにしたい場合があるため、緊急デバッグ用に少なくとも1つの無料接続を維持してください



    1. HadoopMapReduceのデータローカリティの概要

    2. 水平方向にスケーリングされた分散システム向けの、Pub/SubでのRedisクラスターとZeroMQ

    3. MongoDBシェルクエリのコレクションaにないコレクションbからデータを取得する

    4. $または条件を指定したMongooseのfindメソッドが正しく機能しない