ruby-on-rails - redis 无法连接到 rails (ECONNREFUSED)

标签 ruby-on-rails redis

学习在 Rails 中执行自动填充建议的不同方法。现在,尝试基于 Railscast 399 的 Redis,rake 任务停止工作。

Controller :

class VenueSuggestionsController < ApplicationController
  def create
    VenueSuggestion.create(params[:venue_suggestion])
  end

  def index
    render json: VenueSuggestion.terms_for(params[:term])
  end

  private
        def venue_suggestion_params
            params.require(:venue_suggestion).permit(:term, :popularity, venues_attributes: [ :id, :name, :address ])
        end
end

模型

class VenueSuggestion
  def self.terms_for(prefix)
    $redis.zrevrange "venue-suggestions:#{prefix.downcase}", 0, 9
  end

  def self.index_venues
    Venue.find_each do |venue|
      index_term(venue.name)
      index_term(venue.address)
      venue.name.split.each { |t| index_term(t) }
    end
  end

  def self.index_term(term)
    1.upto(term.length-1) do |n|
      prefix = term[0, n]
      $redis.zincrby "venue-suggestions:#{prefix.downcase}", 1, term.downcase
    end
  end
end

rake 任务:

namespace :venue_suggestions do
  desc "Generate venue suggestions for event form"
  task :index => :environment do
    VenueSuggestion.index_venues
  end
end

配置/初始化程序/redis.rb

$redis = Redis.new

然后尝试运行它:

$ rake venue_suggestions:index --trace
** Invoke venue_suggestions:index (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute venue_suggestions:index
rake aborted!
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)

最佳答案

也许,您想要做的是在后台运行您的 redis-server。

简单方法(Tm)

redis-server &

正道(Tm)

# cd into your redis directory(path for mine on OSX below)
cd /usr/local/etc/redis.conf
vim redis.conf
daemonize yes # find this line and change 'no' to 'yes'

然后重启你的redis服务器。

此外,这里还有一些特定于 OSX 的有用说明(如果您使用的是该平台): https://medium.com/@petehouston/install-and-config-redis-on-mac-os-x-via-homebrew-eb8df9a4f298#.mc9tqg22p

关于ruby-on-rails - redis 无法连接到 rails (ECONNREFUSED),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603884/

相关文章:

ruby-on-rails - 合并两个 ActiveRecord 查询结果

redis - 如何从 Redis 获取所有键/值以便将它们插入 SQL 数据库?

Redis RDB 比内存使用量 (716MB) 小 (203KB)

lua - redis.call/lua 参数的动态个数

ruby-on-rails - 官方RoR教程"Template is missing"错误

ruby-on-rails - heroku 不加载语言文件

javascript - Rails 3.2.2 不执行 rjs

ruby-on-rails - Rails & Papertrail - 在查询中包含以前的版本

scala - Spark 上的 Redis :Task not serializable

database - 如何使用此哈希通过 Redis 获取数据