【发布时间】:2020-12-16 11:34:15
【问题描述】:
我正在尝试使用节点缓存的“过期”事件在缓存键值对的 TTL 结束时提取最新数据。 我的理解是它应该在缓存过期时立即调用,但我认为它不会被调用,直到检查期结束并且缓存清除过期值。是这样还是我做错了什么?
【问题讨论】:
我正在尝试使用节点缓存的“过期”事件在缓存键值对的 TTL 结束时提取最新数据。 我的理解是它应该在缓存过期时立即调用,但我认为它不会被调用,直到检查期结束并且缓存清除过期值。是这样还是我做错了什么?
【问题讨论】:
默认情况下,node-cache 不会定期检查过期键,因此只有在访问键时才会触发 on expired 事件。您可以通过在创建节点缓存时设置 checkperiod 选项来更改此行为。
checkperiod: (default: 600) The period in seconds, as a number, used for the automatic delete check interval. 0 = no periodic check.
const NodeCache = require( "node-cache" );
const myCache = new NodeCache({ checkperiod: 120 }); // will check every 120 seconds
【讨论】:
我也在努力实现这一目标。正如您所描述的,我的经验如下:
我的理解是当缓存时它应该立即被调用 过期,但我认为它不会被调用,直到检查期结束并且 缓存清除过期值
【讨论】: