Redis客户端不会删除任何内容

时间:2016-03-17 19:48:49

标签: javascript node.js caching redis

我正在使用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相关的任何内容,以弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:1)

如果合适,您应该使用flushall。请在此处查看更多文档http://redis.io/commands/FLUSHALL。关于您的实现,我认为您需要将回调传递给del