Redis は、進化し続けるデータ管理とストレージの世界で広く使用されているテクノロジーです。インメモリ データ構造ストアとして広く知られている Redis は、キャッシュからリアルタイム分析まで、さまざまなアプリケーションの標準ベースとなる幅広い機能を提供します。この包括的なチュートリアルでは、Redis とは何か、そのコア機能、使用例、開始方法を紹介します。
Redis は Remote Dictionary Server の略です。これは、キーと値のデータベースとして使用できるメモリ内のオープン ソース データ構造ストアですが、さまざまなユースケースのニーズに合わせて他のタイプ (文字列、ハッシュ、リスト、セット、ソート セットなど) も提供します。 Redis の強みには、パフォーマンス、永続化のオプション、および多くの言語との互換性が含まれます。
メモリ内ストレージ: Redis はデータを RAM に保持するため、信じられないほどの速度で読み取りと書き込みを実行できます。そのため、低遅延と高スループットを必要とするアプリケーションに最適です。
リッチ データ構造: Redis は、単純なキーと値のペア以外のさまざまなデータ型をネイティブにサポートしています。それらには次のものが含まれます:
RDB (Redis Database Backup): ある時点でのデータセットのスナップショットがディスクに保存されています。
レプリケーションと高可用性: Redis は、マスター/スレーブ レプリケーションと自動フェイルオーバーをサポートします。 Redis Sentinel は、高可用性を実現するために、監視、通知、フェイルオーバー機能を提供します。
パブリッシュ/サブスクライブ メッセージング: Redis はパブリッシュ/サブスクライブ メッセージングをサポートします。これにより、アプリケーションのさまざまな部分間でリアルタイムのメッセージングと通信が可能になります。
トランザクション: Redis は、MULTI、EXEC、WATCH、および DISCARD コマンドを介してトランザクション サポートを提供します。これは原子性を確保するために行われます。
Lua スクリプト: Redis を使用すると、サーバー上で Lua スクリプトを直接作成して実行できます。したがって、複雑な操作をアトミックな方法で実行できます。
パーティショニング: Redis ではパーティショニングが可能です。これは、拡張性の高いパフォーマンスを実現するために複数のサーバー間でデータをシャーディングすることです。
キャッシュ: これは Redis の最も一般的な用途の 1 つで、頻繁にアクセスされるデータをメモリに保存する高速キャッシュ層を提供します。データベース クエリ結果、セッション データ、または API 応答をキャッシュするために使用できます。
リアルタイム分析: 高いパフォーマンスに加えて、ソートされたセットなどのデータ構造がサポートされているため、Redis はリアルタイム分析とメトリクスの集計に非常に適しています。
セッション管理: Redis は有効期限のサポートに加えて、メモリ内の性質により、Web アプリケーションでのユーザー セッション管理に非常に適しています。
メッセージ キュー: Redis リストとそのパブリッシュ/サブスクライブ機能により、分散システムでの効率的なメッセージ キューイングとリアルタイム メッセージングが可能になります。
リーダーボード システム: ソート セットのデータ構造は、リーダーボードやランキング システムの作成に最適です。
地理空間インデックス: Redis は地理空間クエリをサポートしているため、位置ベースのデータを効率的に保存およびクエリできます。
Redis は、Linux、macOS、Windows などのさまざまなプラットフォームにインストールできます。 Linux への Redis のインストールは、パッケージ マネージャーを使用するのが最も簡単です:
# On Ubuntu/Debian sudo apt-get update sudo apt-get install redis-server # On CentOS/RHEL sudo yum install redis
macOS の場合は、Homebrew を自由に使用してください:
brew install redis
Windows の場合、1 つのオプションは WSL を使用するか、Redis Web サイトからプリコンパイルされたバイナリをダウンロードできます。
開始するための基本的な Redis コマンドをいくつか紹介します。
SET key "value" GET key
LPUSH mylist "item1" RPUSH mylist "item2" LRANGE mylist 0 -1
HSET myhash field1 "value1" HGET myhash field1 HGETALL myhash
ZADD myzset 1 "member1" ZADD myzset 2 "member2" ZRANGE myzset 0 -1 WITHSCORES
Configuration of Redis is done in the file redis.conf. Following are some of the key configuration parameters:
Optimization could be done in:
Memory Usage: There should be profiling on memory usage and modification of the eviction policy, if needed.
Persistence: Depending on what would be required based on the trade-off between durability and performance, there will be the option between RDB and AOF.
以上がRedis: インメモリ データ構造ストアの究極ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。