【问题标题】:ReplyError: ERR unknown command 'evalsha' (Node.js, bull)回复错误:ERR 未知命令“evalsha”(Node.js,公牛)
【发布时间】:2020-01-19 02:23:01
【问题描述】:

我正在尝试在 Windows 上使用带有 Redis 的公牛包进行大量工作,我的服务器已启动并正在运行,但是当我尝试访问该作业时,它给了我一个错误, 到目前为止我的代码。

const queue = require('bull');
const jobs = new queue('jobs')

jobs.process((job, done) => {

    try {
        console.log(job)

    } catch (error) {
        console.log(error)
    }
   })

app.post('/upload', (req, res) => {

    let dat = req.query;

    jobs.add(dat).then(() => {
        console.log('done')
    }).catch(e => console.log(e))

    res.send('job done')
})

这是错误:

{ name: 'evalsha',
  args:
   [ '0a9a51ee96320953ec7bde8e63f3f060b9dac00c',
     '6',
     'bull:jobs:wait',
     'bull:jobs:paused',
     'bull:jobs:meta-paused',
     'bull:jobs:id',
     'bull:jobs:delayed',
     'bull:jobs:priority',
     'bull:jobs:',
     '',
     '__default__',
     '{"data":"muny"}',
     '{"attempts":1,"delay":0,"timestamp":1568792004594}',
     '1568792004594',
     '0',
     '0',
     '0',
     'LPUSH',
     '4fc02f94-d198-4353-b1b3-8da40399a9c5' ] } }

你猜为什么会这样? 即使我这样做了,它也会抛出未处理的承诺拒绝,这种行为是否仅适用于 Windows?

【问题讨论】:

  • aizen,你用的是哪个版本的redis?
  • 啊,我看你也太有文化了,版本是3.11.0
  • 您确定您使用的是 3.11 吗?因为 stable 是 redis 5,unstable 是 redis 2.9.x,prod 验证版本是 4(2 年前发布)。你能再检查一次redis-server --version。想再次确认。
  • redis.io/commands/evalsha 它是在 2.6.x 之后引入的,请确保您拥有正确的版本。我会建议升级 redis 服务器以检查问题是否仍然存在
  • 是的,我认为问题出在redis-server,它是Windows 的最新版本2.4.6,你可以在这里查看-github.com/rgl/redis/downloads。我想可能是这种情况,谢谢你的帮助:)

标签: node.js redis promise


【解决方案1】:

如我所见,您使用的是redis 2.4.6,但根据doc

EVALSHA sha1 numkeys key [key ...] arg [arg ...]
Available since 2.6.0.

所以,这就是抛出这个错误的原因。

现在,基本上如果你找不到适用于 Windows 的 redis 二进制文件,你可以从 here 下载 3.2.1

【讨论】:

    【解决方案2】:

    问题不在于 Bull 而在于您拥有的 Redis 版本。 将 Redis 升级到最近的 [稳定] 版本有助于解决此问题。

    如果您使用的是 Windows 系统并且需要安装最新版本的 Redis。 最好的,目前,在帖子中突出显示: https://medium.com/@Renyxz/how-to-install-redis-4-0-9-on-windows-10-details-d130ef4aaa08

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2020-10-28
      • 2019-01-07
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多