【问题标题】:Redis + Soulmate on heroku - Implementing autocomplete on multiple modelsHeroku 上的 Redis + Soulmate - 在多个模型上实现自动完成
【发布时间】:2013-06-17 16:34:46
【问题描述】:

这是我第一次使用 redis,我正在使用 soulmate 和 redis 在搜索表单上实现自动完成。

我已经在本地机器上安装了 redis,我必须做 redis-server 以确保 redis 正常工作。

为了让它在 heroku 上工作,我使用了redis_to_go 并按照链接上的说明进行操作。

但是似乎 redis 服务器没有启动,因为我不断收到错误 Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)

我在初始化程序中创建了一个 redis.rb 文件,其中包含以下代码:-

ENV["REDISTOGO_URL"] ||= "redis://redistogo:972612d8048aad8@tarpon.redistogo.com:9436/"

uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

我期待这段代码为我启动 redis 服务器。

我还需要做什么才能使 redis 在 heroku 上工作?

【问题讨论】:

    标签: ruby-on-rails heroku autocomplete redis


    【解决方案1】:

    在使用 Redis Cloud 支持来回切换后,我解决了这个问题。

    我需要制作一个文件 - config/initializers/soulmate.rb:

    Soulmate.redis = ENV["REDISCLOUD_URL"]
    

    希望对其他人有所帮助!

    【讨论】:

      【解决方案2】:

      在头疼了 2 天之后,我认为使用 rails 实现自动完成在生产环境中是一个糟糕的选择。

      我能够在我的开发机器上实现它,但 redis + heroku 对我来说是一场噩梦,并且 redis_to_go 团队的支持非常差。

      我已经使用typeahead.js 实现了自动完成搜索。

      【讨论】:

        【解决方案3】:

        尽管您已继续前进,但要回答最初的问题:我在 Soulmate 问题列表中找到了一个关于此的讨论:https://github.com/seatgeek/soulmate/pull/20(额外信息:在提出此问题之前,该修复已合并到 gem 中)。

        所以,要解决这个问题:将 'ENV["REDIS_URL"] = ENV["REDISTOGO_URL"]' 添加到 redis.rb。 我自己的 redis.rb 现在看起来像这样:

        uri = URI.parse(ENV["REDISTOGO_URL"])
        REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
        ENV["REDIS_URL"] = ENV["REDISTOGO_URL"]
        

        【讨论】:

          猜你喜欢
          • 2012-01-03
          • 1970-01-01
          • 2016-03-10
          • 1970-01-01
          • 2018-08-08
          • 1970-01-01
          • 2017-09-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多