redis - 创建 Redis 对象并在调用方法时执行命令时出错

标签 redis redis-cache

这是我包含 ruby​​gems 和 redis 后我的 Rails 控制台的输出。

2.0.0-p353 :024 > r = Redis.new
=> #<Redis client v3.0.7 for redis://127.0.0.1:6379/0> 
2.0.0-p353 :025 > r.set('foo','bar')
=> "OK" 
2.0.0-p353 :026 > r.get('foo')
=> "bar"
2.0.0-p353 :033 > r.lpush('foo','bar')
Redis::CommandError: ERR Operation against a key holding the wrong kind of value
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/redis-3.0.7/lib/redis/client.rb:97:in `call'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/redis-3.0.7/lib/redis.rb:949:in `block in lpush'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/redis-3.0.7/lib/redis.rb:37:in `block in synchronize'
from /home/poorva/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/redis-3.0.7/lib/redis.rb:37:in `synchronize'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/redis-3.0.7/lib/redis.rb:948:in `lpush'
from (irb):33
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/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>'
2.0.0-p353 :034 > r.lpush(foo,'bar')
NameError: undefined local variable or method `foo' for main:Object
from (irb):34
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
from /home/poorva/.rvm/gems/ruby-2.0.0-p353/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>'

最佳答案

更新:第一个参数必须是 lpush 命令的第一个参数,即列表的键。第二,要推送的值。


初始消息(修改问题前)

消息是显式的 ArgumentError:参数数量错误(0 代表 2)。只需按照 Redis documentation 中的描述给 LPUSH 预期的参数: 要推送的键和值。

lpush('mylist', 'bar')

关于redis - 创建 Redis 对象并在调用方法时执行命令时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604023/

相关文章:

ruby-on-rails - Sidekiq WebUI 在一段时间后停止显示工作人员

node.js - 如何使用Redis缓存进行分页?

spring-boot - 如何通过java程序清理redis缓存?

Redis 作为自填充缓存

spring - Redis 还是 Ehcache?

javascript - 连接一段时间后 Redis ETIMEDOUT 错误

python - 在图中创建节点?

redis - Redis 中键值对的存储方式

caching - 每 2 分钟向 Redis 缓存中删除和插入数据

node.js - 将 Redis 用作某些值的数据库