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

マルチスレッドRails環境でRedisを使用するための最良の方法は何ですか? (プーマ/シデキク)

    アプリケーションコードには、個別のグローバル接続プールを使用します。次のようなものをredis.rb初期化子に入れます:

    require 'connection_pool'
    REDIS = ConnectionPool.new(size: 10) { Redis.new }
    

    これで、どこのアプリケーションコードでも、次のことができます。

    REDIS.with do |conn|
      # some redis operations
    end
    

    puma/sidekiqワーカー間で共有できる最大10の接続があります。正しく指摘しているように、単一のRedis接続ですべてのスレッドが競合することはないため、これによりパフォーマンスが向上します。

    これらすべてがここに文書化されています:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling




    1. 起動時にRスクリプトを実行する

    2. Redis(ioredis)-接続エラーを適切に処理するためにキャッチできません

    3. 2dsphereインデックスフィールドに対するマングースnear(...)クエリが有効な結果を返さない

    4. MapReduceのHadoopカウンターとカウンターの種類