CacheManager
概览
CacheManager 基于 node-cache-manager, 为 NocoBase 提供 Cache 模块管理功能。内置的 Cache 类型为
- memory - 由 node-cache-manager 默认提供的 lru-cache
- redis - 由 node-cache-manager-redis-yet 支持相关功能
更多类型可通过 API 进行扩展注册。
概念解释
-
Store: 定义一种缓存方式,包含创建缓存的工厂方法,和其他相关配置。每种缓存方式都有一个唯一标识,在注册的时候提供。 内置的两种缓存方式对应的唯一标识即
memory和redis. -
Store 工厂方法:由
node-cache-manager和相关扩展包提供,用于创建缓存的的方法。如node-cache-manager默认提供的'memory',node-cache-manager-redis-yet提供的redisStore等。即node-cache-manager的caching方法的第一个参数。 -
Cache: NocoBase 封装的类,提供了使用缓存的相关方法。实际使用缓存时操作的是
Cache的实例,每个Cache实例有唯一的标识,可作为区分不同模块的命名空间。
类方法
constructor()
签名
constructor(options?: CacheManagerOptions)
类型
详细信息
CacheManagerOptions
StoreOptions
默认 options
options 参数会和默认 options 合并,默认 options 参数已有内容可以缺省,例如:
registerStore()
注册新的缓存方式,参考
签名
registerStore(options: { name: string } & StoreOptions)
createCache()
创建缓存,参考
签名
createCache(options: { name: string; prefix?: string; store?: string; [key: string]: any }): Promise<Cache>
详细信息
options
store 省略时,将使用 defaultStore , 此时缓存方式会跟随系统默认缓存方式改变而改变。
没有自定义配置时,会返回由全局配置创建,当前缓存方式共享的默认缓存空间,推荐加上 prefix 避免 key 冲突。
Cache
参考 Cache
getCache()
获取对应的缓存
签名
getCache(name: string): Cache
flushAll()
重置所有缓存
close()
关闭所有缓存中间件连接

