Nodejs redis 通过带有 redis-delete-wildcard 的前缀删除一组 KEYS 不起作用

Nodejs redis delete set of KEYS by prefix with redis-delete-wildcard is not working

我正在使用 redis-delete-wildcard 删除以特定前缀开头的键。

客户是:

const client = redis.createClient({
  port: 6379,
  host: '127.0.0.1',
})

module.exports = client

代码如下:

var redis = require('redis');
require('redis-delete-wildcard')(redis);
const client = require('../../config/init_redis')

updatePassword: async (req, res, next) => {   
try {
  const resRef = await verifyRefreshToken(req);
  const body = req.body;
  body.userId = resRef.userId;   
  const salt = genSaltSync(10);
  body.password = hashSync(body.password, salt);
  updatePassword(body, (err, results) => {
    if (err) {
      return next(err)
    }  
    if (!results) {
      return next(createError.BadRequest('Record Not Found'))
    }
    console.log(resRef.userId) // 2
    client.delwild(resRef.userId+':*', (error, numberDeletedKeys) =>{
      if(error){
        console.log(error)
      }
      return res.json({
        status: "200",
        message: "Updated successfully"
      });
    });      
  });
} catch (error) {
  next(error)
} 
},

console.log(错误)是:

ReplyError: ERR unknown command 'eval'
    at parseError (C:\Users\tiger\Desktop\prova\REST_API_WITH_MYSQL-master\node_modules\redis-parser\lib\parser.js:179:12)
    at parseType (C:\Users\tiger\Desktop\prova\REST_API_WITH_MYSQL-master\node_modules\redis-parser\lib\parser.js:302:14) {
  command: 'EVAL',
  args: [
    "local keysToDelete = redis.call('keys', ARGV[1]) if unpack(keysToDelete) ~= nil then return redis.call('del', unpack(keysToDelete)) else return 0 end ",       
    0,
    '2:*'
  ],
  code: 'ERR'

但是当我看到钥匙时,这些钥匙仍然保存着:

我不知道为什么 delwild 函数不起作用...我做错了什么?

您的 Redis 服务器无法识别 "EVAL" command. Could be because the version is less than 2.6.0, or that the EVAL command was renamed/disabled