質問: sidekiq初心者です。 railsのsidekiqはredisと組み合わせて使っていますが、なぜredisなのでしょうか。 redisはメモリ上で動くKVSだと認識しています。 ジョブの管理はKVSでないとダメなのでしょうか。 MySQLなどで管理してくれればActiveRecordからジョブを読みだしたりできて楽になりそうなのに・・・
回答: 高速化が必要なためです。 sidekiq をはじめいわゆるジョブキューマネージャーは大量のジョブをさばくことを目的としており、その速度を、1秒間にさばけるジョブの数をとても重視しています。またジョブの管理の都合上、ジョブがどのような状態にあるかを頻繁に永続化する(=redisに書き込む)ものです。 そのような頻度の高い読込&更新オペレーションには、MySQL などの RDBMS は適していません。純粋にパフォーマンスが望めないのです。よって高速化のために redis などの KVS を用いているのです。