1

Rails と redis を使用しています。

Redis の紹介から、次のような情報を見つけました。

redis サーバーを起動します。

redis-server

redis クライアントを使用します。

> redis-cli
redis> set key value
OK
redis> get key
"value"

サンプルから、質問があります。

Redis インスタンスは 1 つのプロジェクトでしか機能しませんか? ご覧のとおり、「データベース」や「コレクション」などはありません。2 つの異なるプロジェクトが同じ redis を使用する場合、同じキーが無効な値に変更される可能性があります。

では、Rails プロジェクトごとに異なるポートを持つ異なるインスタンスを作成する必要がありますか?

4

2 に答える 2

9

redis にはデータベースもあることに注意してください (私の記憶が正しければ 16 個あります)。それらは名前ではなく、数字です。たとえば、redis-rb接続に を使用している場合、次のようなスニペットが得られます。

$redis = Redis.new(:host => 'localhost', :port => 6379, :db => 5)

それはデータベース 5 に接続します。私はこれをテストの実行にもよく使用するので、テストが開発データベースに干渉することはありません。

于 2010-07-12T04:39:02.037 に答える
1

2 つ以上のアプリケーション間で単一の Redis インスタンス (またはクラスター) を共有する場合は、おそらく、キーの名前空間を作成して、観察した理由からそれらのアプリケーション間で合理的に分割する必要があります。これを行うための優れた Ruby インターフェイスを提供するredis-namespace gem を見てください。

于 2010-07-11T16:52:14.150 に答える