Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails上的Redis-未初始化常量_Ruby On Rails_Redis_Passenger_Resque_Nameerror - Fatal编程技术网

Ruby on rails RubyonRails上的Redis-未初始化常量

Ruby on rails RubyonRails上的Redis-未初始化常量,ruby-on-rails,redis,passenger,resque,nameerror,Ruby On Rails,Redis,Passenger,Resque,Nameerror,我在安装了Apache的Ubuntu服务器上使用passenger 当我尝试加载带有redis的ruby应用程序时,我得到了这个错误 Error message: uninitialized constant Redis::Client::ALIASES Exception class: NameError Application root: /xxx/ruby 0 /usr/local/rvm/gems/ruby-1.9.3-p194/gems/redi

我在安装了Apache的Ubuntu服务器上使用passenger

当我尝试加载带有redis的ruby应用程序时,我得到了这个错误

Error message:
    uninitialized constant Redis::Client::ALIASES

Exception class:
    NameError

Application root:
    /xxx/ruby 



0   /usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-namespace-0.4.3/lib/redis/namespace.rb   128     in `'
1   /usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-namespace-0.4.3/lib/redis/namespace.rb   4   in `'
2   /usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-namespace-0.4.3/lib/redis/namespace.rb   3   in `'
3   /usr/local/rvm/gems/ruby-1.9.3-p194/gems/resque-1.8.2/lib/resque.rb     1   in `'
4   /usr/local/rvm/gems/ruby-1.9.3-p194/gems/resque-1.8.2/lib/resque/server.rb  3   in `'
5   /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/runtime.rb    68  in `require'
6   /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/runtime.rb    68  in `block (2 levels) in require'
7   /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/runtime.rb    66  in `each'
8   /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/runtime.rb    66  in `block in require'
9   /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/runtime.rb    55  in `each'
10  /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/runtime.rb    55  in `require'
11  /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler.rb    119     in `require'
12  /xxx/ruby/config/application.rb     7   in `'
13  /xxx/ruby/config/environment.rb     4   in `require'
14  /xxx/ruby/config/environment.rb     4   in `'
15  config.ru   3   in `require'
16  config.ru   3   in `block in '
17  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/builder.rb     51  in `instance_eval'
18  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/builder.rb     51  in `initialize'
19  config.ru   1   in `new'
20  config.ru   1   in `'/usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb    225     in `eval'
21  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb     225     in `load_rack_app'
22  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb     157     in `block in initialize_server'
23  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/utils.rb    572     in `report_app_init_status'
24  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb     154     in `initialize_server'
25  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb  204     in `start_synchronously'
26  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb  180     in `start'
27  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb     129     in `start'
28  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb    253     in `block (2 levels) in spawn_rack_application'
29  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb   132     in `lookup_or_add'
30  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb    246     in `block in spawn_rack_application'
31  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb   82  in `block in synchronize'
32  < td=""> <> prelude>    10:in `synchronize'
33  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb   79  in `synchronize'
34  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb    244     in `spawn_rack_application'
35  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb    137     in `spawn_application'
36  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb    275     in `handle_spawn_application'
37  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb  357     in `server_main_loop'
38  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb  206     in `start_synchronously'
39  /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/helper-scripts/passenger-spawn-server     99  in `'
这就是我的resque_r.rb的样子(它位于config/initializers中)

我的宝石档案

source 'https://rubygems.org'

gem 'rails', '3.2.3'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'


# Gems used only for assets and not required
# in production environments by default.
group :assets do

  gem 'sass-rails', :require => 'sass'

  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platform => :ruby

  gem 'uglifier', '>= 1.0.3'

  gem 'compass-rails'

end

gem 'twitter-bootstrap-rails', "~> 2.0rc0"

gem 'jquery-rails'

gem 'feedzirra'

gem "friendly_id", "~> 4.0.1"

gem 'acts-as-taggable-on', '~> 2.2.2'

gem 'will_paginate', '~> 3.0'

gem 'gon'

gem 'wikitext'

gem 'twitter'

gem 'yaml_db'

#JSON PARSER
gem "oj", "~> 1.2.8"

gem "mysql2", "~> 0.3.11"

gem 'resque', :require => "resque/server"

gem 'resque-scheduler', :require => 'resque_scheduler'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

从堆栈跟踪来看,在加载
config.ru
时似乎发生了错误

您的config.ru文件中似乎没有包含
resque/server

以下是我在一个项目中使用的配置:

require ::File.expand_path('../config/environment',  __FILE__)
require 'resque/server'

run Rack::URLMap.new \
  "/"       => DmWorkflow::Application,
  "/resque" => Resque::Server.new
另外,我不知道这是否对您有影响,但我在我的
Gemfile
中包含了以下内容:

gem 'resque'
gem 'resque-loner' 
gem 'resque-scheduler', ">= 2.0.0.h"

您正在运行旧版本的
resque
gem。
redis namespace
version
1.0.2
及更高版本上的
resque
新版本,但堆栈跟踪显示它加载了
redis namespace
v0.4.3

尝试运行
捆绑包更新
。如果版本仍然不正确,请将以下内容添加到
GEM文件中:

gem 'redis-namespace', '~> 1.0.2'
或者,您可以通过git安装边缘版本的
resque

gem 'resque', github: 'defunkt/resque'

我在服务器上安装了错误版本的redis。我没有使用apt-get-install-redis-server,而是手动安装了redis-server,解决了这个问题

我不太明白你做了什么来修复这个问题,因为我相信这实际上是redis命名空间中的一个bug。请参阅。

请将您的GEM文件内容张贴在此处。看起来像是宝石冲突。@论文更新,谢谢!你在Ubuntu和Apache上有吗?它对我没有帮助,它在本地对我有效,但在服务器上无效。我正在heroku上部署。您是否在服务器上运行了
bundle install
?我尝试更改您的GEM文件中的设置,它安装redis 2.2.2(而不是3.0)并使用该设置。但这又给了我另一个错误。和这个人一样,我可以告诉他,我的redis服务器版本太旧了;我会更新它,看看它是否给我任何错误。尽快给你回电话!有趣的。。。我的
Gemfile.lock
也显示了
redis(2.2.2)
。但一切都很好。据rubygems.org称,
redis(3.0.0)
昨天刚刚发布。这可能是你的问题的一部分。实际上,我使用sudo apt get install redis server安装了一个旧的v。对于redis,这是一个很大的失误,我手动卸载并重新安装了redis,解决了问题!:)主要问题是我使用了错误的redis版本。我使用sudo apt get install redis server安装了一个旧的v。redis的。我卸载了它并手动安装了redis,解决了我遇到的问题。但是我确实用名称空间1.0.2更新了我的gemfile,谢谢你提供的信息!当@Narkoz编写gem'redis namespace'时,请将其放在gem文件中,“~>1.0.2”强制使用该版本的redis namespace可能会起到作用,但问题最终是由我发布的问题引起的。
gem 'redis-namespace', '~> 1.0.2'
gem 'resque', github: 'defunkt/resque'