実際の開発作業では、通常、キャッシュ、分散ロック/メッセージ キューなどに Redis データベースを使用します。しかし、Redis サーバーをセットアップして構成した後、デフォルトで 16 個のデータベースが作成されるのはなぜですか?という疑問がよくあります。
この質問を紹介しましょう。
1. 16 のデータベースの起源
redis は辞書構造のストレージ サーバーです。Redis インスタンスは、データを保存するための複数の辞書を提供します。クライアントデータをどの辞書に保存するかを指定できます。これは、リレーショナル データベース インスタンスで複数のデータベースを作成する方法 (次の図を参照) に似ているため、各辞書を独立したデータベースとして理解できます。
Redis はデフォルトで 16 のデータベースをサポートします。この値は、redis 構成ファイル redis/redis.conf でデータベースを調整することで変更できます。設定が完了したら、redis を再起動します。設定が完了します。
#クライアントが Redis とのリンクを確立すると、データベース No. 0 がデフォルトで選択されますが、select コマンドを使用していつでもデータベースを変更できます。
# 切换数据库操作:切换到1 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> 127.0.0.1:6379[1]> # 切换到0 127.0.0.1:6379[1]> SELECT 0 OK 127.0.0.1:6379> # 从1号库中获取username 127.0.0.1:6379[1]> get username 。
(学習ビデオ共有: redis ビデオ チュートリアル)
実際のプロジェクトでは、次のように Redis 構成ファイルの形式でデータベースを指定できます。以下の図に示されています。 手順
# 2. redis の「データベース」概念を正しく理解します。
redis はカスタム データベース名をサポートしていないため、すべてのデータベースには番号で名前が付けられます。開発者は、保存されたデータとデータベース自体の対応関係を記録する必要があります。さらに、redis はデータベースごとに異なるアクセス パスワードの設定をサポートしていないため、すべてのクライアントがすべてのデータベースにアクセスできるか、すべてのデータベースにアクセスする権限を持っていないかのどちらかです。 Redis の「データベース」概念を正しく理解するには、次のコマンドについて言及する必要があります:
Redis インスタンス内のすべてのデータベースのデータをクリアする
127.0.0.1:6379> FLUSH ALL
Clear the data in a redis インスタンス特定の Redis データベース 他のライブラリのデータは消去されません
127.0.0.1:6379> FLUSH db0
このコマンドは、私たちが使い慣れているリレーショナル データベースとは異なり、インスタンスの下にあるすべてのデータベース データを消去できます。リレーショナル データベースの複数のライブラリは、さまざまなアプリケーションのデータを保存するためによく使用されますが、インスタンス内のすべてのライブラリ データを同時にクリアする方法はありません。 Redis の場合、これらの DB は名前空間に似ており、さまざまなアプリケーションからのデータを保存するのには適していません。たとえば、開発環境ではデータベース 0 にデータを格納し、テスト環境ではデータベース 1 にデータを格納できますが、アプリケーションのデータをデータベース 0 に格納するのは適していません。 A とアプリケーション B のデータを保存するためにデータベース No. 1 を使用します。 異なる環境 データを保存するには、異なる Redis インスタンスを使用する必要があります。 Redis は非常に軽量で、空の Redis インスタンスは約 1M のメモリしか占有しないため、複数の Redis インスタンスが大量の追加メモリを占有することを心配する必要はありません。
3. 1 つのインスタンスはクラスター内の複数の DB をサポートしますか?
上記はすべて単一 Redis の状況に基づいています。クラスターの場合、redis クラスター モードには db0 が 1 つしかないため、select コマンドを使用した db の切り替えはサポートされていません。
推奨学習:redis データベース チュートリアル
以上がRedis がデフォルトで 16 個のデータベースを作成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。