LoginSignup
1
2

More than 1 year has passed since last update.

【AWS】ElastiCacheのMemcachedとRedisの比較

Posted at

プログラミング勉強日記

2021年5月6日

ElastiCacheの特徴

 ElastiCacheはデータをノードのメモリに保存する。これによって高速でデータの出し入れを行うことができる。
 ただ、メモリにデータを保存しているため再起動などでノードが落ちるとデータがなくなってしまうので、注意が必要。

Memcachedとは

 Memcachedのクラスタは単純にノードを追加・削除して負荷を分散できる。しかし、これは自動検出の機能に依存している。
 Memcachedはノードの状態をポーリングしてノードにアクセスをする。

ポーリングとは、「サーバーとクライアント」や「主システムと周辺機器」といった複数の機器を円滑に連携させる方法のひとつです。主に通信などの競合を回避するために、ホスト側が各機器に対して定期的に問い合わせを行い、条件を満たした場合に送受信や各種処理を行います。
引用:https://blogs.manageengine.jp/itom_what_is_polling/

 Memcachedはマルチスレッドで動作するため、CPUのコア数を上げれば性能を上げられる。シンプルなデータしか扱うことができないので、複雑なデータを扱う場合はアプリ側で格納できる型に変更する必要がある。また、扱えるコマンドも少ない。

Redisとは

 Redisにはいくつかの種類があるが、Memcachedクラスターとの違いはクラスターのエンドポイントを持っていること。Redisクラスターもノードの数を加減することで負荷の分散ができる。
 Redisはクラスターがエンドポイントを持っているので、アプリ側でポーリングする必要がない。

 Redisはシングルスレッドで動作するため、CPUのコア数を上げてもMemcachedほどパフォーマンスの向上を期待できない。Redisは豊富なデータ型を使うことができるだけでなく、正規表現を用いたキーの検索などget/setにも機能が豊富。

MemcachedとRedisの使い分け

Memcachedを使うとき

  • 単純なデータ型でいい場合
  • マルチスレッドを使用する場合
  • オブジェクトをキャッシュする必要がある場合

Redisを使うとき

  • 複雑なデータ型が必要な場合
  • フェイルオーバーが必要な場合
  • 永続化が必要な場合

参考文献

Memcached と Redis の比較
ElastiCacheはMemcachedとRedisのどっちを選ぶ?

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