レディス

WBOY
WBOYオリジナル
2024-08-10 20:42:33573ブラウズ

レディス

レディス は、データがキーと値のペアで保存される NOSQL データベースです。
レディス はデータをメイン メモリに保存します。つまり、データをディスクに保存する PostgreSQL のようなデータベース システムとは異なり、高速ですが揮発性です。

概要

サーバーとデータベースを備えたアプリケーションでは、データベース上の情報にアクセスすると遅延が発生します。

redis のような Key-Value データベースはこれらのデータベースの前に置かれることが多く、アクセス操作には 2 つの手順が必要です。

  1. 情報がキャッシュ内にある場合、キャッシュ ヒット、アプリケーションは レディス から情報を取得してクライアントに送信します
  2. そうでない場合、キャッシュミス、アプリケーションはデータベースから情報を取得し、クライアントに送信してキャッシュに保存します。

これらの 2 つの手順と、メイン メモリのレイテンシーがディスクよりも低いことを考慮すると、レディス を使用して頻繁に最近のデータや高価な操作を保存およびアクセスできるため、アプリケーションが 10 ~ 50 倍高速化できると言えます。

したがって、将来的にスケーラブルなアプリケーションを構築しようとしている場合、レディス (または レディス に類似したデータベース) が不可欠であるということは事実です。


質問

  1. レディス はオープン ソースですか?: はい、レディス は特別な種類のライセンスを持つオープン ソースですが、Snapchat や Memcached の KeyDB などのオープン ソースの代替手段もあります。 KeyDB は レディス のフォークですが、現時点では Linux 上でのみ実行できます。

  2. レディス は Windows をサポートしていますか?: いいえ、レディス は Windows をサポートしませんが、WSL/Ubuntu をインストールし、
    を使用して レディス をインストールできます。

sudo apt install redis
  1. WSL を使用しています。私のシステムで redis サーバーが動作しないのはなぜですか: WSL で実行している場合、次を使用して redis-server を実行できます。
redis-server --port 6000

ここで、6000 は、実行するローカル サーバーのポートです。 (つまり 127.0.0.1:6000)。

ほとんどの問題は、redis-server が使用しているデフォルトのポートがすでに使用されていることが原因です

  1. レディス 用のクライアント ライブラリはありますか?: 実際にはあります。 レディス Web サイトで見つけることも、自分で構築することもできます。

レディス のインストール

Linux では、redis のインストールは次のように簡単です

sudo apt install redis
Mac の

または :

brew install redis

レディス の実行

には ターミナルの 2 つのインスタンス

が必要です

サーバーを実行する最初のサーバーで

redis-server -port <portnumber>
</portnumber>

2 番目ではクライアントを実行します

redis-cli

Web アプリを構築する場合、クライアントを実行する必要はありませんが、サーバーは実行されている必要があります

レディス の概念

レディス には理解すべき 3 つの主要な概念があります または 4 つ

  1. キーと値のペア
  2. リスト
  3. セット
  4. ハッシュ

他のすべてのデータ構造は主に最初のデータ構造の高度な実装です

リストとは、リンクリストではなく、配列を意味しており、redis はそれをそう呼んでいます。


キーと値のペア

キーと値のペアは、ほとんどのプログラミング言語で一般的なデータ構造です。

  1. Python では、辞書または略して dict と呼ばれます

  2. JavaScript では、マップ

  3. と呼ばれます
  4. C# では、Dictionaries

  5. と呼ばれます。

レディス のキーと値のペアには 6 つの主な操作があります

Operations Explanations Examples Further Explanation
SET Creates a key-value pair SET name John Sets key to map to value
GET Gets value for key GET name This returns John
DEL Deletes the key value pair DEL name This removesthe key value pair name from the database
EXISTS Checks if a key exists in the redis database EXISTS name returns 1 or 0 corresponding to True or False
FLUSHALL Clears the entire cache FLUSHALL more or less like DROP TABLE in postgres
KEYS * Returns all the keys in the database KEYS *

時間ベースの操作もあります。時間ベースの操作では、キーは設定された期間だけキャッシュ内にあり、時間が経過するとキャッシュによってキーが削除されます。

主に 2 つの時間ベースの操作があります

Operations Explanations Examples Further Explanation
EXPIRE Expires a key after being defined EXPIRE name 10 Deletes the key-value name after 10s .The key must be defined with SET before calling EXPIRE . A common alternative is;
SETEX Expires a key upon definition SETEX age 30 15 Sets the key age to value 30 and thereafter deleted the key-value pair after 15s
TTL Time To Live TTL age Returns the time remaining before deletion of the age key

ブログが長くなってしまったので、リストセットハッシュマップ、そして redis に関する面接での質問についてお話します 別のブログで。

ご質問がございましたら、以下にコメントしてください。できる限りお答えいたします。⭐ハッピーコーディング

以上がレディスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。