【英語で学ぶ】Redisキャッチアップおすすめ動画3選‼️🍊
はじめに
こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。
この記事は、Redisの全体像を短時間で把握したい方に向けた内容です。詳細な実装については触れていませんので、あらかじめご了承ください。
なお、英語に抵抗がある方は、Language Reactor を使うことで、より視聴しやすくなるかもしれません。
結論:厳選動画3選 📹
約3分
約4分
約7分
そもそもRedisとは何ぞや?
Redis(Remote Dictionary Server)はデータをメモリ上に保存することによって、極めて低いレイテンシー(ミリ秒未満)でアクセスを可能にするインメモリデータベースです。
主に「Key」と「Value」の形式でデータを管理し、シンプルなコマンドで操作できます。
例):
SET hello "world"
でKey:hello
、Value:world
を設定し、GET hello
で値を取得可能。
Redisの誕生背景
2009年、Redisは耐久性を備えたキャッシュとして誕生しました。
特にTwitterのような大規模プラットフォームでは、リレーショナルデータベース(RDB)では対応しきれない高速データ配信のニーズが高まり、Redisのようなインメモリキャッシュが求められました。
Redisの強み
1. 高速性の理由
Redisはインメモリデータベースであり、ディスクI/Oを使用せずにデータを直接メモリに保存します。これにより、ディスクアクセスに伴う遅延がなく、非常に高速なデータ処理が可能です。
※トレードオフとして、データセットのサイズはメモリ容量に依存します。
2. シングルスレッド設計
Redisはシングルスレッドで動作します。
マルチスレッド設計の方が一般的には高速と思われがちですが、ロックや同期といった複雑な制御が不要なため、シンプルかつ効率的に動作します。
また、I/Oの多重化を活用することで単一スレッドでも複数のリクエストを同時に処理可能です。
欠点として、全てのCPUコアを活用できない点が挙げられます。
これを補うため、複数のRedisインスタンスを一台のサーバー上で実行する場合もあります。
Redisの代表的なユースケース
1. キャッシュとしての利用
Redisの最も一般的なユースケースはキャッシュです。データベースへのアクセス頻度を減らし、アプリケーションのパフォーマンスを向上させます。
また、シャーディングを活用してキャッシュの負荷を複数のインスタンスに分散させることで、さらに効率的な処理が可能です。
2. セッションストア
セッションデータをRedisに保存することで、Webアプリケーションでのセッション管理を高速化できます。ただし、インメモリデータベースであるため、Redisが再起動するとセッションデータは失われます。
3. 永続化
スナップショットやAOF(Append Only File)を利用して、Redisのデータをディスクに保存し、データの永続化を実現できます。
4. 分散ロック
マルチノード間で競合しないリソースアクセスを実現するために、Redisを分散ロックのメカニズムとして使用します。
5. レートリミッター
APIへのリクエスト回数を制限するためにレートリミッターとしても使用可能です。リアルタイムにカウントデータを管理することにより、効率的なリクエスト制御が可能です。
最後に
今回は、Redisの全体像を短時間で把握したい方のために、厳選した3つの動画をご紹介しました。
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉
noteでも記事を執筆していますので、ぜひチェックしてみてください。
他にもこのようなことについて記載しているのでお読みいただければ幸いです。
最後までお読みいただき、誠にありがとうございました!
Discussion