Redis: インメモリ データ構造ストアの究極ガイド

王林
リリース: 2024-09-11 06:40:02
オリジナル
568 人が閲覧しました

Redis: The Ultimate Guide to In-Memory Data Structure Store

Redis は、進化し続けるデータ管理とストレージの世界で広く使用されているテクノロジーです。インメモリ データ構造ストアとして広く知られている Redis は、キャッシュからリアルタイム分析まで、さまざまなアプリケーションの標準ベースとなる幅広い機能を提供します。この包括的なチュートリアルでは、Redis とは何か、そのコア機能、使用例、開始方法を紹介します。

リディスとは何ですか?

Redis は Remote Dictionary Server の略です。これは、キーと値のデータベースとして使用できるメモリ内のオープン ソース データ構造ストアですが、さまざまなユースケースのニーズに合わせて他のタイプ (文字列、ハッシュ、リスト、セット、ソート セットなど) も提供します。 Redis の強みには、パフォーマンス、永続化のオプション、および多くの言語との互換性が含まれます。

Redis のコア機能

  1. メモリ内ストレージ: Redis はデータを RAM に保持するため、信じられないほどの速度で読み取りと書き込みを実行できます。そのため、低遅延と高スループットを必要とするアプリケーションに最適です。

  2. リッチ データ構造: Redis は、単純なキーと値のペア以外のさまざまなデータ型をネイティブにサポートしています。それらには次のものが含まれます:

    • Strings: 基本的なデータ型。テキストの文字列。
    • ハッシュ: 複数のフィールドを持つオブジェクトに便利です。 リスト: 順序付けされた文字列のコレクション。キュー処理などに適しています。セット: 固有の要素の順序付けされていないコレクション。メンバーシップテストを実行する必要がある場合に最適です。ソートされたセット: セットに似ていますが、スコアが付いています。要素はスコアに従って順序付けできます。永続性 Redis はメモリ内ストアですが、永続性のためのオプションがあります。
  3. RDB (Redis Database Backup): ある時点でのデータセットのスナップショットがディスクに保存されています。

    • AOF (追加専用ファイル): 書き込み操作は、データセットを再構築するために再生できるログに追加されます。
  4. レプリケーションと高可用性: Redis は、マスター/スレーブ レプリケーションと自動フェイルオーバーをサポートします。 Redis Sentinel は、高可用性を実現するために、監視、通知、フェイルオーバー機能を提供します。

  5. パブリッシュ/サブスクライブ メッセージング: Redis はパブリッシュ/サブスクライブ メッセージングをサポートします。これにより、アプリケーションのさまざまな部分間でリアルタイムのメッセージングと通信が可能になります。

  6. トランザクション: Redis は、MULTI、EXEC、WATCH、および DISCARD コマンドを介してトランザクション サポートを提供します。これは原子性を確保するために行われます。

  7. Lua スクリプト: Redis を使用すると、サーバー上で Lua スクリプトを直接作成して実行できます。したがって、複雑な操作をアトミックな方法で実行できます。

  8. パーティショニング: Redis ではパーティショニングが可能です。これは、拡張性の高いパフォーマンスを実現するために複数のサーバー間でデータをシャーディングすることです。

Redis の使用例

  1. キャッシュ: これは Redis の最も一般的な用途の 1 つで、頻繁にアクセスされるデータをメモリに保存する高速キャッシュ層を提供します。データベース クエリ結果、セッション データ、または API 応答をキャッシュするために使用できます。

  2. リアルタイム分析: 高いパフォーマンスに加えて、ソートされたセットなどのデータ構造がサポートされているため、Redis はリアルタイム分析とメトリクスの集計に非常に適しています。

  3. セッション管理: Redis は有効期限のサポートに加えて、メモリ内の性質により、Web アプリケーションでのユーザー セッション管理に非常に適しています。

  4. メッセージ キュー: Redis リストとそのパブリッシュ/サブスクライブ機能により、分散システムでの効率的なメッセージ キューイングとリアルタイム メッセージングが可能になります。

  5. リーダーボード システム: ソート セットのデータ構造は、リーダーボードやランキング システムの作成に最適です。

  6. 地理空間インデックス: 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 コマンドをいくつか紹介します。

  • Setting and Getting Values:
  SET key "value"
  GET key
ログイン後にコピー
  • Working with Lists:
  LPUSH mylist "item1"
  RPUSH mylist "item2"
LRANGE mylist 0 -1
ログイン後にコピー
  • Hashes:
  HSET myhash field1 "value1"
  HGET myhash field1
  HGETALL myhash
ログイン後にコピー
  • Sorted Sets:
  ZADD myzset 1 "member1"
  ZADD myzset 2 "member2"
  ZRANGE myzset 0 -1 WITHSCORES
ログイン後にコピー

Configuration and Optimization

Configuration of Redis is done in the file redis.conf. Following are some of the key configuration parameters:

  • maxmemory: This basically sets a cap on the amount of memory Redis can use, and it opens up user-configurable eviction policies when this is reached.
  • appendonly: Turn AOF persistence on or off.
  • save: You can configure RDB snapshots to take place at an interval of your choice.

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.

  • Replication: Primary-replica replication for redundancy and scaling reads.

以上がRedis: インメモリ データ構造ストアの究極ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート