特徴
- キーバリューストア型
- フルマネージド
- Radis/Memcachedの2つのデータストアエンジンをサポート
- インメモリ型データベース つまりRAMに保存する高速アクセスが可能なタイプ
- 実態はEC2インスタンス
キャッシュ戦略
- 遅延読み込み(Lazy loading)
①書き込みリクエスト発生。RDSに書き込む
②読み込みリクエスト発生。
キャッシュサーバにある場合・・・応答して終わり。
キャッシュサーバにない場合・・・Webサーバはキャッシュサーバへデータを書き込む。
Webサーバの負荷が少ない。遅れて格納するからレイジーローディング
- ライトスルー
①書き込みリクエスト発生。RDSとキャッシュサーバに書き込む
②読み込みリクエスト発生。基本的にキャッシュにヒットする
Webサーバの負荷が高く、初回の書き込みは遅延の可能性がある。
キャッシュサーバの容量は確保する必要がある。
Radis/Memcachedの違い
特徴 | Memcached | Redis |
---|---|---|
マルチスレッド | はい | いいえ |
複数のデータ型のサポート | いいえ | はい |
永続性 | いいえ | はい |
レプリケーション | いいえ | はい |
Pub/Sub(チャット)サポート | いいえ | はい |
フェイルオーバー機能 | いいえ | はい |
バックアップ
ElastiCache for Redisのバックアップ
自動か手動で取得。S3の領域に保存。
プライマリノードから取得される。
まれに失敗したり、バックアップ中のパフォーマンスが悪い時がある。
大抵はメモリ不足。reserved-memory-percentの値を増やして対応。
また、リードレプリカからのバックアップ取得に変更する事でも対応可能。整合性に問題が発生する場合があり推奨はされないみたい。