【问题标题】:Redis::CommandError: ERR invalid DB index when running rspecRedis::CommandError: 运行 rspec 时出现 ERR 无效的数据库索引
【发布时间】:2012-12-26 13:28:10
【问题描述】:

我刚刚开始使用现有的 Rails 代码库,并且正在尝试在代码库中运行测试。但是,当我运行 bundle exec rspec spec/ 时,每次测试都会出现以下错误:

Failure/Error: Unable to find matching line from backtrace
Redis::CommandError:
   ERR invalid DB index
 # ./lib/redised.rb:35:in `flushdb_all'
 # ./lib/redised.rb:35:in `each_value'
 # ./lib/redised.rb:35:in `flushdb_all'

我对 Rails 很陌生——我只完成了 Michael Hartl 的 rails 教程中的 11 章中的 8 章——所以我对 Redis 并不熟悉。我的 Redis 版本是redis-2.4.17

【问题讨论】:

    标签: ruby-on-rails rspec redis


    【解决方案1】:

    问题是我需要增加数据库的数量。为此,我去了/usr/local/etc 并修改了redis.conf。我将数据库编号设置为 128:databases 128

    【讨论】:

    • 我目前遇到了这个问题。只是想知道您对 128 个数据库的推理是什么。
    • @BenMorganIO 它只是我公司正在使用的数量之上的任意数字。我解决这个问题已经一年多了,所以我不确定;一位同事可能向我推荐了该号码。
    • 对于某些人来说,这可能是一种创可贴,而不是解决指数为何意外增长的问题。
    • @aceofspades 人们遇到的常见情况是他们的应用程序被配置为使用 N 个不同的 Redis 数据库,但他们已经将本地 Redis 配置为运行
    • 我不得不更改redis.conf.default 文件中的databases 配置,因为它显然会覆盖redis.conf。这个数字根本不是任意的。根据您应用程序的 redis 配置,您的 db 的最大数字不能大于您在 redis.conf 中设置的数字。
    【解决方案2】:

    虽然为时已晚,但可能对其他人有所帮助。

    如果您使用像“test”这样的数据库名称,请将其替换为像“0”/0 这样的索引。如果您不确定索引,请尝试使用 0 作为您的索引。祝您好运

    【讨论】:

      猜你喜欢
      • 2014-07-06
      • 2016-03-17
      • 2014-12-08
      • 2021-05-30
      • 2021-01-06
      • 2014-03-17
      • 2016-01-17
      • 2016-10-26
      • 2023-03-31
      相关资源
      最近更新 更多