Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What is going on with this article?

More than 3 years have passed since last update.

@robitan

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

問題の概要

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のほうが好きです。なんとなく。

31
Help us understand the problem. What is going on with this article?
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
31
Help us understand the problem. What is going on with this article?