Este pacote é uma simples implementação de um cache em memória que automaticamente apaga items salvos após um tempo pre-definido sem uso (LRU).
Foi criado com a ideia de ser um modulo mais flexível e simples de se utilizar quando comparado com outras alternativas disponiveis atualmente, foi feito para ser utilizado em outros projetos meus (Kami e Kami-Site).
const kami_cache = require("kami-lru-cache").kami_cache
const config = {
maxAge: 600000, // Tempo máximo que o item pode permanecer no cache em milissegundos
updateAgeOnGet: true, // Se o tempo máximo do item será redefinido sempre que ele for utilizado
rateOfVerifyAgedKeys: 60000 // Tempo entre cada verficação de chaves que atingiram seu tempo máximo
}
const cache = new kami_cache(config)
const meuItem = {
atributo: "valor"
}
const meuItemAdicionado = cache.set("MinhaChave", meuItem, 300000)
// meuItemAdicionado = true
const meuItem = cache.get("MinhaChave")
// meuItem = {
// atributo: "valor"
// }
const meuItemNoCache = cache.has("MinhaChave")
// meuItemNoCache = true
const quantidadeDeItensNoCache = cache.length()
// quantidadeDeItensNoCache = 1
const meuItemApagado = cache.delete("MinhaChave")
// meuItemApagado = true
const meuCacheVazio = cache.clear()
// meuCacheVazio = true
cache.events.on("keyAutoDelete", (key) => {
//To Do
})
cache.events.on("keySet", (key) => {
//To Do
})
cache.events.on("keyUpdateAge", (key, newAge) => {
//To Do
})
cache.events.on("keyGet", (key) => {
//To Do
})
cache.events.on("keyDelete", (key) => {
//To Do
})
cache.events.on("keyHas", (key, has) => {
//To Do
})
cache.events.on("cacheLength", (length) => {
//To Do
})
cache.events.on("cacheClear", () => {
//To Do
})