Techioz Blog

Rails を使用すると非常にエレガントになります (以下からの回答もあります):

概要

次のコマンドを使用して Redis にデータを挿入しようとすると、Ruby スクリプトに問題が発生します。

redis.set(key,value)

コンソールは私にこう言います:

undefined method `set' for nil:NilClass (NoMethodError)

なぜ機能しないのかわかりません。スクリプトにrequire “redis”を挿入し、正しいgemをインストールしました。redis-serverは正しく実行されます。 これは Ruby スクリプトからの Redis 接続です。

redis = Redis.new(host: "127.0.0.1", port: 6379, db: 0)

これは私のスクリプトの例ですが、重要なデータがあるため共有できません。

require "redis"
begin
  redis = Redis.new(host:"127.0.0.1", port: 6379, db: 0)
rescue => error
  p error
end
redis.set("pizza", "bufala")
redis.close()

解決策

おそらく、Redis 接続の周りにエラー処理を追加して、正しく行われていることを確認してみるとよいでしょう。

begin
  redis = Redis.new(host: "127.0.0.1", port: 6379, db: 0)
rescue => e
  puts "Failed to connect to Redis: #{e}"
end

また、「redis.set(key,value)」を呼び出そうとしている場所から「redis」変数接続にアクセスできることも確認してください。 スクリプトの完全な構造を教えていただけますか。それは別のものかもしれません…