Cache
Redis
https://zenn.dev/tk42/books/adbf4f87beed12 色々なユースケースを紹介 ちょっと早すぎた
https://docs.aws.amazon.com/ja_jp/elasticache/index.html 以下がお客様の状況に当てはまる場合は、Memcached を選択します。
- できるだけシンプルなモデルが必要である。
- 複数のコアまたはスレッドを持つ大きなノードを実行する必要がある。
- システムでの需要の増減に応じてノードを追加または削除するスケールアウトおよびスケールイン機能が必要である。
- オブジェクトをキャッシュする必要があります。
Q
- モデルとは?
- redis におけるスケールアウトは?
- オブジェクトとは?
入門
https://redis-documentasion-japanese.readthedocs.io/ja/latest/topics/data-types-intro.html
キーに対して、文字列以外も割となんでも対応づけ可能
- バイナリセーフな文字、文字のコレクション、集合、Bitarray
キーは「バイナリ・セーフ」 バイナリ列であれば、キーとして扱うことができる
- 長すぎは良くない。ルックアップでコストがかかる
1.インメモリデータベース - Wikipedia https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9
メインメモリデータベースは内部最適化アルゴリズムが簡素であり、相対的に少ないCPU命令を実行するので、ディスク最適化されたデータベースと比較して高速である。メモリ上でデータアクセスを行うことで、ディスクと比較し、より高速かつ安定したパフォーマンスを提供できる。通信ネットワーク機器など、応答時間が肝要であるアプリケーションにおいて、インメモリデータベースは多用されている。[1]
Redisはキー/バリュー型のデータベースで、独特のデータモデルを提供する。このモデルのユーザーコマンドは、リレーショナルデータベース管理システムのようにクエリを記述しない。操作はデータ型に基づいて実行される。つまり、データを後で素早く取り出せるように、それに適した形で保存しなければならない。
Amazon ElastiCache Redis のクラスターを適切にサイジングする際に考慮すべき 5 つのワークロード特性
TPS ~20000 、データサイズが ~ 100G であれば T3 を推奨。 t3.mediumまでスケールアップ
より大きい場合はM5/R5
- ENAによるアク超ネットワーキング
- 600Gを超えるmemory → 25 GBpsの帯域
ElastiCache ノードの要件を決定するときは、以下を考慮してください。
メモリ →
- データストアのサイズ
- TTLによる期限切れも考慮
- キャッシュヒット率 予備または予約済みメモリ
- ノードサイズの約25 % は予備となるべき
- スナップショット作成、やレプリケーションで使用
可用性
- 1プライマリ/2レプリカ + マルチAZ
- 書き込みが多いプライマリには注意。同期が頻繁に必要
- レプリカ多すぎても負荷がかかる
スケーリング
- 垂直水平が可能
データ
Hands
Memcached
Elasticache
memorydb for redis
https://dev.classmethod.jp/articles/aws-release-durable-redis-amazon-memorydb-for-redis/