简单缓存
一个基本的关键价值商店,具有简单的缓存能力.
安装
npm install @alexsasharegan/simple-cache
文档
访问 API 文档在这里 .
缓存是缓存密钥/ 值对类型的接口 K编号 :V它是初级
功能包括:
Cache.write: 在密钥上写入一个值Cache.read: 从密钥读取一个值Cache.get: 将值读作Option<V>(可能类型)Cache.remove: 按键去除一个值Cache.clear: 清空缓存
使用量
在 plain JavaScript 中创建缓存看起来像 :
// Creates a cache with a capacity of 10 items. The second parameter is the
// "type label". It serves as a convenience option for more meaningful
// `toString` behavior.
let userCache = SimpleCache(10, { key: "ID", value: "User" })
userCache.toString()
// SimpleCache<ID, User> { size: 0, capacity: 10 }
如果您正在使用 TypeScript , 您需要通过声明密钥和 作为通用参数的值类型 :
interface User {
id: number
name: string
}
let userCache = SimpleCache<number, User>(10, { key: "ID", value: "User" })
userCache.toString()
// SimpleCache<ID, User> { size: 0, capacity: 10 }
以下是以REPL风格显示的五种主要交互方法的一些例子.
如果你想知道更多关于 Option 返回类型
Cache.get,访问
安全类型存储器。 。 。 .
let userA = { name: "User A", id: 1 }
let userB = { name: "User B", id: 2 }
userCache.write(userA.id, userA)
userCache.write(userB.id, userB)
userCache.size()
// 2
userCache.read(1)
// { name: "User A", id: 1 }
userCache.read(2)
// { name: "User B", id: 2 }
userCache.get(2)
// Some<{ name: "User B", id: 2 }>
userCache.read(3)
// undefined
userCache.get(3)
// None
userCache.remove(1)
userCache.size()
// 1
userCache.read(1)
// undefined
userCache.clear()
userCache.size()
// 0
有一个以弗所缓存。 它缓存项目 持续的时间是 以毫秒计.
// Sets a capacity of 10 users and a max lifetime of 5 seconds
let userCache = EphemeralCache<number, User>(10, 5000, {
key: "ID",
value: "User",
})
userCache.write(1, { name: "Temp", id: 1 })
setTimeout(() => {
userCache.read(1)
// undefined
}, 5001)
userCache.read(1)
// { name: "Temp", id: 1 }