Help us understand the problem. What is going on with this article?

結局のところmemcacheとredisどっちがいいの?という問題に対する私的結論サマリ

More than 1 year has passed since last update.

問題の概要

memcacheはもう古い! 次はRedisだ! と言われてから幾星霜、意外とあちこちで生き残っているmemcache。新規でmemcache使ってるというお話もちらほらと耳にするけれど、実際のところそれいいの? どうなの? どっちがいいの? ということで自分なりの結論を出すために調べてみました。

まずは結論

悩んだらRedis

その理由

  • memcacheとredisは、費用面、パフォーマンスについては大差はない。
    • 唯一、使用するメモリ量がredisのほうが若干多くなりやすいらしいけれどそれも格納するデータの内容次第で必ずしもそうであるとは言い切れない(らしい)。
    • いっぽうで使用しなくなったメモリの解放についてはRedisのほうが優秀。(FLUSHの時だけの可能性はある)
    • 個人的には初期の学習コストも変わらないと思う(どっちも簡単)(素晴らしい)
  • memcacheのできることはRedisもできる。Redisのできることのうちmemcacheにはできないことがある。例えば以下。
    • データの永続化(ただし永続化設定するとその精密さに応じてパフォーマンスは下がる)
    • master/slave構成
    • 暗号化
    • ソート
  • 使用するケースや規模が事前に正しく決められるならmemcacheのほうがいい場合もある。
    • ただし大抵の場合正しく決められない。
    • 後から(稼動後数年経過も含む)使い方が変わるとかいう場合もある。
    • システムは生き物だからね!
  • だから”念のため”Redisにしておくほうがいい
    • 必要になったら全部memcacheからredisに置換するぜー!って覚悟のあるひとはとりあえずなんでもいい。せっかくだから俺はmemcacheを選ぶぜ!でいい。
    • しかしRedisでも別にいい。
    • Redisとmemcacheの併用という可能性はサーバ費用の問題があるので除外した。
    • なお、永続化が必要なデータ/永続化が不要なデータが混在している場合それをRedis/memcacheを併用して使い分けるっていう手も考えたけれど(1システム内にRedisが2種類あるとわかりにくいとか云々)、永続化の要不要の判断をミスった場合のことを考えたら、もういっそ全部永続化でいいよ! ね!(expireはつけよう)

参考

なお、本当にすごくどうでもいい話として

名前的にはmemcacheのほうが好きです。なんとなく。

robitan
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした