Redisとはなんぞや
「Redis は、リモートディクショナリサーバーの略で、データベース、キャッシュ、メッセージブローカー、およびキューとして使用するための、高速でオープンソースのメモリ内 Key-Value データストアです。このプロジェクトは、Redis の最初の開発者である Salvatore Sanfilippo 氏が、イタリアのスタートアップ企業のスケーラビリティを改善しようとしていたときに始まりました。Redis は今、ゲーム、アドテクノロジー、金融サービス、医療、IoT の分野のリアルタイムアプリケーションでミリ秒未満の応答時間を実現し、1 秒間に数百万件のリクエストを処理できます。Redis は、キャッシング、セッション管理、ゲーム、リーダーボード、リアルタイムアナリティクス、地理空間、ライドヘイリング、チャット/メッセージング、メディアストリーミング、およびパブ/サブアプリケーションに広く使用されています。」公式
要は
RedisはKey-Valueでデータを保存するサーバってことか。
応答時間が早いのが特徴なんですね
主にキャッシュ、セッション管理などに使われているということ
「データをディスクや SSD に保存するデータベースとは異なり、Redis のデータはメモリ内に保存されます。Redis のようなインメモリデータストアでは、ディスクにアクセスする必要がないため、シークタイムの遅延はなく、マイクロ秒単位でデータにアクセスできます。Redis は、柔軟性に優れたデータ構造、高可用性、地理空間、Lua スクリプト、トランザクション、オンディスクの永続性、クラスターサポートといった機能に対応しているため、リアルタイムのインターネット規模のアプリケーション構築がさらに簡単になります。」
DBは通常ディスクやSSDに保存される(あんまり知らなかった)
Redisメモリ内に保存される
ディスクアクセスが不要なのでマイクロ秒単位でデータアクセスが可能(わお)
リアルタイムの、インターネット規模のアプリケーション構築がさらに簡単に
「Redis と MemCached は、どちらもインメモリのオープンソースデータストアです。高性能分散メモリキャッシュサービスの Memcached は、シンプルに、また Redis は幅広いユースケースに対して効果的であるように、豊富な機能をお届けできるように作られています。決断するためのより詳細な機能比較については、Redis 対 Memcached をご覧ください。 MySQL、Postgres、Aurora、Oracle、SQL Server、DynamoDB などのリレーショナルデータベースまたは Key-Value データベースと連携してパフォーマンスを向上させます。 」
インメモリのデータストアはRedisのほかにMemCachedというものがあるのか。
ざっくり言えばMemCachedはシンプルで、Redisは汎用性が高いっていうイメージ。
「Amazon ElastiCache は、ミリ秒未満の応答時間が必要な最も要求の厳しいアプリケーション向けに、完全マネージド型の Redis と Memcached を提供します。Amazon ElastiCache はインメモリデータストアやインメモリキャッシュとして機能し、ミリ秒単位の応答時間が必要とされるような、要求の厳しいアプリケーションにも対応しています。お客様専用のノードで実行する最適化したエンドツーエンドのスタックを利用することで、Amazon ElastiCache で安全かつ非常に高速なパフォーマンスが実現します。」公式
なるほど。
AWSのElastiCacheはRedis(とMemCache)を管理してくれるサービスなのか。
ElastiCacheのおかげでミリ秒単位のアクセスが可能になるってのが売りなんですね。
ElastiCacheのスケーリングに関して調べてみる。
「Amazon ElastiCache は、変化するアプリケーションニーズに応じて、スケールイン、スケールアウト、スケールアップできます。書き込みおよびメモリのスケーリングは、シャーディングでサポートされています。レプリカは読み取りスケーリングを提供します。」公式
ElastiCacheもスケールできるんですね。
「Amazon ElastiCache for Redis では、小規模の Redis データから始め、アプリケーションの拡大に応じて最大 170.6 TB のインメモリデータを持つクラスターまで簡単にスケールすることができます。Redis Cluster 環境を最大 250 のノードと 250 のシャードにまでスケールできます。オンラインでクラスターのサイズを変更することでダウンタイムなしでスケールアウト/スケールインし、ニーズの変化に対応できます。ElastiCache では、読み込みキャパシティーをスケールするために、複数のアベイラビリティーゾーン全体で最大 5 つのリードレプリカを追加できます。ElastiCache では、書き込みキャパシティーをスケールするために、複数のプライマリ間で書き込みトラフィックを分割できるよう Redis クラスターをサポートしています。」公式
スケールアップ … 最大170.6TB
スケールアウト … 最大250ノードと250シャード
MultiAZで最大5つのリードレプリカ作成可能
Redisクラスタなるものがある。
どうやらクラスタモードが有効か無効かによってスケーリング内容が変わってくるらしい・・・。
もうちょっとredisクラスタについて調べてみる...
「Redis (クラスターモードが無効) クラスターは、シャードを持たない単一ノードクラスターでも、1 つの シャードを持つマルチノードクラスターでもかまいません。単一ノードクラスターでは、読み取りと書き 込みの両方に 1 つのノードを使用します。マルチノードクラスターには、0 ~ 5 の読み取り専用レプリカ ノードのある読み取り/書き込みプライマリノードとして常に 1 個のノードがあります。」公式
単一かマルチの構成があるのか。
終わり