1 つのサーバー上で約 200 の Redis インスタンスが開かれ、それを見ただけでクラッシュしました。これは、異なるアプリケーションに属する異なる種類のデータを互いに分離しようとすることに他なりません。
それでは、Redis で、同じインスタンスに保存しながら、異なるアプリケーション データを互いに分離しておく方法はあるのでしょうか? mysql データベースに相当し、異なるアプリケーション データが異なるデータベースに保存されます。
redis では、データベースはデータベース名ではなく整数インデックスによって識別されます。デフォルトでは、クライアントはデータベース 0 に接続します。 Redis 構成ファイル内の次のパラメーターは、データベースの総数を制御します。
databases 16
次のコマンドを使用して、別のデータベースに切り替えることができます。
redis> select 2 OK
以降、すべてのコマンドはデータベース 3 を使用します。別のデータベースに明示的に切り替えます。
各データベースには独自のスペースがあるため、データベース間のキーの競合を心配する必要はありません。
異なるデータベースでは、同じキーが独自の値を取得します。
flushdb コマンドでデータをクリアすると、現在のデータベースのデータのみがクリアされ、他のデータベースには影響しません。
#flushall コマンドは、このインスタンスのデータをクリアします。このコマンドを実行する前に、十分に注意してください。
データベースの数は構成可能で、デフォルトは 16 です。 redis.conf の下のデータベース ディレクティブを変更します。
databases 64
redis には、異なるデータベースを関連付けて識別する方法が提供されていません。したがって、どのデータベースにどのデータが保存されているかを追跡する必要があります。
したがって、200 個のインスタンスをすばやく開く上記のシナリオは、それほど多くのインスタンスを開かなくても、さまざまなデータベースに保存できます。
redis の詳細については、redis 入門チュートリアル 列に注目してください。
以上がRedis 複数データベースの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。