【问题标题】:Nodejs redis delete set of KEYS by prefix with redis-delete-wildcard is not workingNodejs redis删除带有redis-delete-wildcard前缀的KEYS集不起作用
【发布时间】:2021-07-22 00:02:15
【问题描述】:

我正在使用 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(error) 是:

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 函数不起作用...我做错了什么?

【问题讨论】:

  • 能否将client.delwild回调中的console.log改成同时记录errornumberDeletedKeys并在这里分享?
  • @LeibaleEidelman 对不起,你说得对,我刚刚修改了,谢谢你的回复

标签: node.js redis


【解决方案1】:

您的 Redis 服务器无法识别 "EVAL" command。可能是因为版本低于 2.6.0,或者 EVAL 命令是 renamed/disabled

【讨论】:

    猜你喜欢
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    相关资源
    最近更新 更多