私は2つのレールアプリを持っています。最初のアプリは、一定のデータを常に計算して Redis に保存します (このアプリは JRuby 1.7.4 および Rails 4 で実行されています)。2 番目のアプリは、同じ Redis サーバーからこのデータを読み取ります (このアプリは Ruby 2.0.0 および Rails 4 で実行されています)。ローカル開発環境でこの構成を実現しようとした後、Redis データが 2 つのアプリ間で共有されていないことが明らかになりました。両方のアプリで、config/initializers/redis.rb ファイルは次のようになります。
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/")
$redis = Redis.new(host: uri.host, port: uri.port, password: uri.password)
いずれかのアプリで Rails コンソールを開くと、Redis クライアントは次のようになります (同じデータベース、同じ uri、同じパスなど)。
#<Redis client v3.0.4 for redis://localhost:6379/0>
しかし、あるアプリでキー/値を設定しようとすると、他のアプリで同じキーが見つかりません。ここで単純なものが欠けているように感じます。
解決済み: アプリの 1 つで開発中の fake-redis gem を使用していました。これが、Redis が両方のアプリで動作しているように見えても、データを共有していないように見える理由です。助けてくれてありがとう。