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。
我正在使用 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。