我使用Redis和我的rails应用程序,用红-物体、dm-核心和dm-redis-适配器映射Ruby对象。下面是代码片段
Gemfile
gem 'redis-objects'
gem "dm-core", "~> 1.2.1"
gem "dm-redis-adapter"/config/initializers/redis.rb
// LOCAL REDIS SERVER
Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
// REMOTE REDIS SERVER
#Redis.current = Redis.new(:host => '<VM IP>', :port => <VM PORT>, :password => '<PASSWORD>')Model.rb
DataMapper.setup(:default, {:adapter => "redis"})
class User
include Redis::Objects
include DataMapper::Resource
include ActiveModel::Validations
include ActiveModel::Conversion
# datamapper fields, just used for .create
property :id, Serial
property :name, String
property :email, String
property :des, Text
def id
1
end
end
User.finalize对本地的redis服务器来说很好。为什么应用程序总是指向本地redis,即使提供远程主机和端口?
解决了:查看我的答案。。
发布于 2014-01-09 10:39:37
如问题所示:
// LOCAL REDIS SERVER
Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
// REMOTE REDIS SERVER
#Redis.current = Redis.new(:host => '<VM IP>', :port => <VM PORT>, :password => '<PASSWORD>')Model.rb
DataMapper.setup(:default, {:adapter => "redis"})在上面的代码中,我在用户模型中重载Redis配置。在这种情况下,我还需要在模型中编写远程配置。
DataMapper.setup(:default, {:adapter => "redis", :host => '<VM IP>', :port => <VM PORT>, :password => '<PASSWORD>'})发布于 2014-01-08 13:21:29
Redis.current是一种方法,如果实例变量@current为空,它总是提供新的连接。请参阅https://github.com/redis/redis-rb/blob/master/lib/redis.rb#L19
def self.current
@current ||= Redis.new
end尝试将Redis.new分配给其他全局对象,如$redis。这应该主要是解决你的问题。
https://stackoverflow.com/questions/20995531
复制相似问题