我有两个 Rails 应用程序。第一个应用程序不断计算一些数据并将其存储在 Redis 中(此应用程序在 JRuby 1.7.4 和 Rails 4 上运行)。第二个应用程序从同一个 Redis 服务器读取这些数据(这个应用程序在 Ruby 2.0.0 和 Rails 4 上运行)。尝试在我的本地开发环境中实现此配置后,很明显我的 Redis 数据没有在两个应用程序之间共享。在这两个应用程序中,我的 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>
但是当我尝试在一个应用程序中设置键/值时,在另一个应用程序中找不到相同的键。我觉得我在这里错过了一些简单的东西。
已解决:我在开发我的一个应用程序时使用了 fake-redis gem。这就是为什么 Redis 似乎在这两个应用程序中都工作但不共享数据的原因。谢谢您的帮助。