我正在使用node.js redis client。在我运行单元测试之前,我想清除所有redis键。出于一些奇怪的原因,我的代码什么也没做。
const redis = require('redis');
const client = redis.createClient({
host: conf.host,
port: conf.port,
prefix: conf.prefix
});
client.on('connect', err => {
// everything is OK here. I can set and get.
});
module.exports = redis;
在测试开始之前,我想清除缓存:
const redis = require('file-above');
before(done => {
redis.keys('*', function (err, rows) {
rows.forEach(row => {
console.log(row); // perfectly matched
redis.del(row);
// nothing changed. I can still get any of the rows above here
});
});
done();
});
此后没有删除任何内容。我尝试添加setTimeout
,尝试使用直接redis.del('*', done)
而不使用密钥匹配。
我在.del
软件包自述文件中找不到与redis
相关的任何内容,以弄清楚我做错了什么。
答案 0 :(得分:1)
如果合适,您应该使用flushall
。请在此处查看更多文档http://redis.io/commands/FLUSHALL。关于您的实现,我认为您需要将回调传递给del
。