使用 new MonSQLize() 的 cache 配置数据库读缓存。
new MonSQLize()
cache
import MonSQLize from 'monsqlize'; const msq = new MonSQLize({ type: 'mongodb', databaseName: 'shop', config: { uri: 'mongodb://localhost:27017/shop' }, cache: { maxEntries: 100_000, enableStats: true, autoInvalidate: false } });
cache.maxEntries
number
100000
cache.maxMemory
0
cache.defaultTtl
cache.enableStats
boolean
true
cache.enabled
false
cache.autoInvalidate
cache.distributed
object
读缓存按查询显式开启:
const products = await msq.collection('products').find( { category: 'phone' }, { cache: 30_000, limit: 20 } );
读参数里的 cache 是毫秒级 TTL。未传 cache 时,该查询不进入缓存。
写操作默认不失效读缓存。只有接受集合级 broad 失效的性能与一致性取舍时,才建议全局开启:
const msq = new MonSQLize({ type: 'mongodb', databaseName: 'shop', config: { uri }, cache: { autoInvalidate: true } });
需要精准控制的写路径,优先使用单次写入的 cache.invalidate。见 缓存失效。
cache.invalidate