2

このチュートリアルに従って、レールを redis に接続しようとしています。$redis = Redis.new(:host => 'localhost', :port => 6379)しかし、または単に試してみると、次のエラーが発生しますRedis.new。新しい表記法も試してみました(host: 'localhost',port: 6379)。Redis が動作します (redis-cli パスによる ping-PONG テスト)。

ArgumentError: odd number of arguments for Hash
    from /var/lib/gems/1.9.1/gems/redis-2.1.1/lib/redis.rb:65:in `[]'
    from /var/lib/gems/1.9.1/gems/redis-2.1.1/lib/redis.rb:65:in `info'
    from /var/lib/gems/1.9.1/gems/redis-2.1.1/lib/redis.rb:606:in `inspect'
    from /var/lib/gems/1.9.1/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
    from /var/lib/gems/1.9.1/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
    from /var/lib/gems/1.9.1/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

私は何を間違っていますか?

Config Details:
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ rails -v
Rails 4.0.0
4

5 に答える 5

2

次の問題がありましたが、redis gem を 3.x にアップグレードできませんでした。redis-rb は、実行時に存在しなかった redis 構成のキーと値のペアを探していたことが判明しましたredis-server

構成ファイルを使用して redis-server を実行する

redis-server /usr/local/etc/redis.conf

問題を修正しました。

于 2015-04-15T00:14:50.433 に答える
1

私はまだ redis を使用していませんが、大まかに見ると、redis-ruby ライブラリを使用しているようです。利用可能になったら、おそらく redis-rails を試してみたいでしょう!( http://rubygems.org/gems/redis-rails )

最も簡単な方法は、Gemfile を探して、redis gem に関する情報を削除することです。その行を次のように置き換えます。

gem 'redis-rails'

ファイルを保存してから、次を実行します。

$ bundle install
于 2013-09-11T19:28:53.437 に答える
0

私はまったく同じ問題を抱えていました.2.6.xから2.8.6にhomebrew更新したことが判明しました.redis-server

古いバージョンの redis に戻しましたが、うまくいきました。

于 2014-03-04T19:39:28.833 に答える