1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:RedisとMemcachedにハマったので、自分用のメモ書きとしてアウトプットしてみた

Last updated at Posted at 2025-03-29

はじめに

Webアプリケーションや大規模サービスを開発・運用していく中で、パフォーマンスを最適化するためのキャッシュ戦略はとても重要です。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

特にRedisやMemcachedといったインメモリ型のデータストアは、その代表格として多くの現場で利用されています。


Redisとは

Redis(Remote Dictionary Server)は、分散型のインメモリ・キー/バリュー型データストアであり、以下のような特徴を持ちます。

  • 開発言語:最初はTcl、後にC言語で再実装
  • データ構造:文字列、リスト、セット、ハッシュ、ソート済みセット などをサポート
  • ユースケース:
    • セッション管理
    • ジョブキュー(例:Sidekiq)
    • リアルタイムランキング
    • Pub/Sub メッセージング
    • 永続化付きキャッシュ
  • 永続化機能:スナップショット(RDB)やAOF(Append Only File)で対応可能
  • 使用例:Twitter、GitHub、Stack Overflow、Snapchatなど

参考文献


Memcachedとは

Memcachedもまた、分散型のインメモリ・キー/バリュー型データストアであり、以下のような特徴を持ちます。

  • 開発言語:最初はPerl、後にC言語で再実装
  • 特徴:非常にシンプルで高速なキャッシュ専用システム
  • サポートデータ型:基本的に文字列のみ
  • ユースケース:
    • Webページキャッシュ
    • データベースクエリ結果のキャッシュ
    • 一時的なセッション情報
  • 永続化機能:なし(あくまで一時的なキャッシュ)
  • 使用例:Facebook、YouTube、Shopify、Pinterestなど

参考文献


RedisとMemcachedの主な違い

特徴 Redis Memcached
永続化 あり(RDB/AOF) なし
データ型 複数(リスト、セット等) 文字列のみ
パフォーマンス 書き込みにも強い 読み取り特化
機能性 Pub/Sub、トランザクション等 シンプルなキャッシュ機能に特化
メモリ管理 より柔軟(LRU制御など) 固定サイズでのLRU

まとめ

RedisとMemcachedはどちらも高速なキャッシュシステムとして非常に優れていますが、用途や要件によって選び方が変わってきます。

  • 一時的な読み取りキャッシュだけならMemcached
  • 構造化データや永続化、Pub/Subなども活用したいならRedis

今後のプロジェクトでどちらを使うか検討する際の参考になればと思い、こうして整理しておきました。必要があれば、実際の設定例やDocker環境での構築方法も追記していきます!

参考文献

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?