我在Heroku上使用Redis To Go,我想用它来存储Resque作业旁边的一些数据,就像我可以将DelayedJobs存储在与我的其他模型数据相同的Postgres数据库中。
这可能吗?注意简要解释Resque如何在Redis中存储工作?我是Redis的新手,虽然我在更高层次上了解它是如何工作的,但我对实现细节并不熟悉。
是的你可以。根据救援文件:
Resque有一个redis setter,可以给它一个字符串或一个Redis对象。这意味着如果您已在应用中使用Redis,Resque可以重复使用现有连接。
此外,Resque.redis=
的文档声明接受了命名空间,以防止与在同一实例上运行的其他应用程序发生冲突:
'hostname:port / namespace'字符串(用于设置Redis名称空间)
有关更多信息,请查看Rescue自述文件的“配置”部分:qazxsw poi
https://github.com/resque/resque/blob/master/README.markdown是一个高级键值存储,Resque使用它来存储有关作业的数据。确切的细节取决于您的应用程序,但两者应该很好地协同工作。只要您的代码远离使用Resque使用的列表,那么您将是金色的。
是的,完全同意其他答案,Redis可用于其他目的,不仅用于后台处理。顺便说一下,Rescue提供了简单的界面来设置/配置/使用/浏览Redis。
安装/运行
Redis
使用
$ git clone --depth=1 git://github.com/defunkt/resque.git
$ cd resque
$ rake redis:install dtach:install
$ vim config/resque.yml
"development: localhost:6379"
$ vim config/initializers/rescue.rb
"rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..'
rails_env = ENV['RAILS_ENV'] || 'development'
resque_config = YAML.load_file(rails_root + '/config/resque.yml')
Resque.redis = resque_config[rails_env]"
$ rake redis:start
浏览
# model
def user_activity
a = Resque.redis.lrange "log_" + self.id.to_s, 0, -1
a.map{|i| JSON.parse(i)}
end
它允许您浏览Redis内容,而不仅仅是后台处理