next-l/enju_leaf

redisの役割について

Closed this issue · 5 comments

@nabeta
初歩的な質問ですみません。enjuをGCP上に構築したいと思っており、各コンテナの役割を調べているのですが、redisは、どのようなことに使用していますか?
具体的には、Memorystore for Redis で代用ができるか検討しております。

@shin1kt Redisは、TSVインポートなどの非同期処理に使用しています。
https://railsguides.jp/active_job_basics.html
https://github.com/resque/resque

GCPは経験がないのですが、Memorystore for Redisはデータの永続化が行われないとドキュメントにあり、インポートが失敗したときなどの情報が残らないかもしれません。

なお、現在のDocker版では使用していませんが、Redisはキャッシュの保存先に使用することもできます。
https://railsguides.jp/caching_with_rails.html#activesupport-cache-rediscachestore

@nabeta
ご丁寧な回答ありがとうございます。なるほどインポートが失敗して接続が切れたときに問題がでるかもしれないということですね。いただいたヒントを元に調査して判断していきたいと思います。

Redisはキャッシュの保存先

ちなみに

docker compose run --rm web bundle exec rake sunspot:reindex

sunspotのreindexをするときにredisコンテナが起動しているようですが、solrのキャッシュをredisに保存しているというわけではないのでしょうか。

すみません。webのdepends onにsolrが設定されているから起動しているだけで、sunspotと関係しているわけではないですね。失礼しました。

@nabeta
ありがとうございます。キャッシュについては引き続き確認して理解を深めたいと思います。
質問の意図としては返答いただけましたのでコメントを閉じさせていただきます。