1. ホーム
  2. ruby-on-rails

[解決済み] RedisとMemcache、それともRedisだけ?

2023-04-11 04:13:45

質問

Rails 3アプリのキャッシュにmemcachedを使っているのですが、単純な Rails.cache インターフェイスでmemcachedを使用していますが、redisとresqueを使用してバックグラウンドでジョブ処理を行いたいと考えています。

両方使ってもいいくらいの違いだと思います。しかし、herokuでは、memcachedとredisの両方を使用するために別の料金がかかります。それとも、redisだけを使うように移行すべきでしょうか?

私はキャッシュのためにmemcachedを使うのが好きです。なぜなら、最近使われたキーは自動的にキャッシュから押し出され、キャッシュデータを持続させる必要がないからです。Redisは私にとってほとんど新しいものですが、デフォルトで永続的であることと、キーが自動的にキャッシュから失効しないことは理解しています。

EDIT: 私の質問をもっと明確にしたかったのです。両方の代わりにRedisだけを使用することが可能であることは知っています。そうすることで何か特別な不利な点があるかどうかを知りたいだけなのでしょう。実装とインフラの両方を考えると、Redisだけではダメな理由ってありますか?(例えば、単純なキャッシュにはmemcachedの方が速いのか?)どちらも決定的なものは見つかっていません。

どのように解決するのですか?

すでに行っているキャッシュをmemcachedからredisに移行するのは簡単だと仮定して、物事をシンプルに保つためにredisのみにします。

redisでは永続化はオプションなので、memcachedと同じように使用することができます。キャッシュを永続化することで、再起動後にキャッシュが大量に失われるのを防ぐことができると思うかもしれません。このアルゴリズムは memcached とは少し異なりますが、ほとんどの用途で問題になるほどではありません。 http://redis.io/commands/expire を参照してください。