【问题标题】:Can you use Redis alongside Resque?Redis 可以和 Resque 一起使用吗?
【发布时间】:2011-10-27 12:37:52
【问题描述】:

我在 Heroku 上使用 Redis To Go,我想用它来存储一些数据以及 Resque 作业,就像我可以将 DelayedJobs 存储在与我的其余模型数据一样的 Postgres 数据库中。

这可能吗?想简要解释一下 Resque 如何在 Redis 中存储作业?我是 Redis 的新手,虽然我对它的工作原理有更高的了解,但我对实现细节并不熟悉。

【问题讨论】:

    标签: ruby-on-rails ruby heroku redis resque


    【解决方案1】:

    是的,你可以。根据 Resque 文档:

    Resque 有一个 redis 设置器,可以给定一个字符串或一个 Redis 对象。这意味着如果您已经在应用中使用 Redis,Resque 可以重用现有连接。

    此外,Resque.redis= 的文档声明接受命名空间,以防止与在同一实例上运行的其他应用发生冲突:

    'hostname:port/namespace' 字符串(用于设置 Redis 命名空间)

    查看 Resque 自述文件的“配置”部分了解更多信息:https://github.com/resque/resque/blob/master/README.markdown

    【讨论】:

    • 好的,我只需要为键提供唯一的命名空间,Redis 就不会被其他记录弄糊涂了,是吗?
    • 我个人认为这是一个比我自己的答案更干净的解决方案,当你有一个命名空间时,它会强制分离关注点,并且通常会使代码保持更好的状态。
    【解决方案2】:

    Redis 是一个高级键值存储,Resque 使用它来存储有关作业的数据。确切的细节取决于您的应用程序,但是两者应该可以很好地协同工作。只要您的代码不使用 Resque 使用的列表,那么您就会很成功。

    【讨论】:

    • 这就是我想知道的方法——我假设 Resque 使用 Redis 列表,但我真的不知道如何避免接触它们或如何访问它们。帮忙?
    • 哦!这取决于应用程序,以 Resque 自述文件中的示例为例,队列是使用@queue = :file_serve 设置的。在 Redis 中,此数据使用与列表相同的名称存储。
    【解决方案3】:

    是的,完全同意其他答案,Redis 可以用于其他目的,而不仅仅是用于后台处理。顺便说一句,Rescue 提供了简单的界面来设置/配置/使用/浏览 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
    

    浏览

     $ resque-web
    

    它允许您浏览 Redis 内容,而不仅仅是后台处理

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-03
      • 2017-01-29
      • 2014-09-17
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      相关资源
      最近更新 更多