定时任务提供一个redis解决方案
将redis.conf 中notify-keyspace-events Ex 前注释去掉
//监听redis 过期时间
const Redis = require('ioredis');
const CONF = {
host: '*******',
port: *****,
prefix: ':',
password: '',
db: 1,
};
const redis = new Redis(CONF);
// 创建监听
redis.send_command(
'config',
['set', 'notify-keyspace-events', 'Ex'],
subExpired
);
// 存入一个四秒后会过期的键
redis.set('key', 'bar', 'EX', 40);
// 监听回调
function subExpired(err, res) {
// 这里需要创建一个新的Redis对象
// 因为 Connection in subscriber mode, only subscriber commands may be used
const sub = new Redis(CONF);
// 设置事件参数
const expired_subKey = `__keyevent@${CONF.db}__:expired`;
sub.subscribe(expired_subKey, function () {
sub.on('message', function (info, msg) {
console.log(info, msg);
});
});
}