注: Redis は複数のデータベースをサポートしており、各データベースのデータは分離されているため共有できず、単一のマシン上でのみ使用できます。データベースの概念。
redis が多数のデータベースに分割されている理由は、ビジネスを区別するためです。異なるビジネスは異なるライブラリに格納されます。ただし、通常は 1 つのプロジェクトに対して 1 つの redis が使用されます。プロジェクト内の異なるビジネスは分離されています。 . データのクロスオーバーが発生しないようにライブラリを使用します。
Redis は辞書構造のストレージ サーバーです。実際、Redis インスタンスはデータを保存するための複数の辞書を提供します。クライアントはデータを保存する辞書を指定できます。これは、リレーショナル データベース インスタンス内に複数のデータベースを作成できるというよく知られた事実と似ており、各辞書は独立したデータベースとして理解できます。
各データベースは、0 から始まる増加する番号で外部的に名前が付けられます。Redis はデフォルトで 16 のデータベースをサポートします (さらに多くのデータベースは構成ファイルでサポートでき、上限はありません) で構成できます。データベースを使用してこの数値を変更します。クライアントが Redis との接続を確立すると、データベース No. 0 が自動的に選択されますが、SELECT コマンドを使用していつでもデータベースを変更できます。データベース No. 1 を選択する場合:
redis> SELECT 1 OK redis [1] > GET foo (nil)
ただし、これらの番号が付けられたデータベースは私たちのデータベースとは異なり、データベースの理解も異なります。
まず第一に、Redis はカスタム データベース名をサポートしていません。各データベースは番号に基づいて名前が付けられます。開発者は、どのデータベースにどのデータが保存されているかを記録する必要があります。
さらに、Redis はデータベースごとに異なるアクセス パスワードの設定をサポートしていないため、クライアントはすべてのデータベースにアクセスできるか、1 つのデータベースにもアクセスする権限を持っていません。
最も重要な点は、複数のデータベースが完全に分離されていないということです。たとえば、FLUSHALL コマンドを使用すると、Redis インスタンス内のすべてのデータベースのデータをクリアできます。
要約すると、これらのデータベースは名前空間に似ており、さまざまなアプリケーションからのデータを保存するのには適していません。たとえば、アプリケーションの本番環境ではデータベース 0 にデータを格納し、テスト環境ではデータベース 1 にデータを格納することができますが、データベース 0 にアプリケーションのデータを格納するのは適切ではありません。アプリケーション A のデータを格納し、アプリケーション B のデータを格納するデータベース No. 1 は異なります。アプリケーションはデータを格納するために異なる Redis インスタンスを使用する必要があります。
Redis は非常に軽量であるため、空の Redis インスタンスは約 1M しか占有しないため、複数の Redis インスタンスが大量の追加メモリを占有することを心配する必要はありません。
以上がなぜ Redis には 16 個のライブラリがあるのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。