Thu Apr 24 2025
この記事を書いている時点でもよくわかっていないのですが、Cloudflare KVみたいなものだと思っています。
で、最近このRedisをちょくちょく使う機会が増えてきました。
最近使い始めたのですが、とあるジョブを定期的に実行したい場合、単純にやるだけならcron
を使えばいいわけですが、そうなるとタスクが早く終わりすぎたり、時間がかかりすぎる場合に何も実行されていない時間が生まれたり、タスクが終わらずに並列実行されてしまったりするわけです。
で、それを解決する方法としてBullMQ
というものがあるらしくて、それを採用しました。
これはタスクのスケジュールをKVに保存しておいて、失敗したものを再実行したりすることができます。
NodeJSでそのまま立ち上げていると、落としたときにメモリに残っていたタスク情報が消えてしまうのでRedisを使うことで、永続化できるというわけです、便利ですね。
また、レートリミットを設定する際にもRedisが使えるらしいです。最初はCloudflare KVで設定しようかと思っていたのですがアクセスがあるたびにKVを更新していると思った以上に重く、レスポンスタイムが悪くなってしまうことがわかりました。
それが原因でタイムアウトすることもあるみたいなので、KVを利用してレートリミットを設定するのはやめました。
NodeJSとかで動かすならRedisをレートリミットのキャッシュとして使えるらしいので、そちらも検討してみようと思っています。
RedisとRailsはぜんぜん違うぞ。