Skip to content

Um simples LRU Cache criado para meus proprios projetos

License

Notifications You must be signed in to change notification settings

alanfilho184/Kami-LRU-Cache

Repository files navigation

Tests CI

Kami-LRU-Cache

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).

Utilização

Métodos

.set(key: String, value: Any, maxAge: Number): true

.get(key: String): Any

.delete(key: String): true

.has(key: String): Boolean

.length(): Number

.clear(): true

 

Propriedades

.map: Map<String, JSON>

.maxAge: Number READ-ONLY

.updateAgeOnGet: Boolean READ-ONLY

.events: EventEmitter READ-ONLY

 

Eventos

.on('keyAutoDelete') => key: String

.on('keySet') => key: String

.on('keyUpdateAge') => (key: String, newAge: Number)

.on('keyGet') => key: String

.on('keyHas') => (key: String, has: Boolean)

.on('cacheLength') => length: Number

.on('cacheClear') => void

 

Inicialização

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)

Utilização

.set

const meuItem = {
    atributo: "valor"
}

const meuItemAdicionado = cache.set("MinhaChave", meuItem, 300000)

// meuItemAdicionado = true

.get

const meuItem = cache.get("MinhaChave")

// meuItem = {
//    atributo: "valor"
// }

.has

const meuItemNoCache = cache.has("MinhaChave")

// meuItemNoCache = true

.length

const quantidadeDeItensNoCache = cache.length()

// quantidadeDeItensNoCache = 1

.delete

const meuItemApagado = cache.delete("MinhaChave")

// meuItemApagado = true

.clear

const meuCacheVazio = cache.clear()

// meuCacheVazio = true

Eventos

keyAutoDelete

cache.events.on("keyAutoDelete", (key) => {
    //To Do
})

keySet

cache.events.on("keySet", (key) => {
    //To Do
})

keyUpdateAge

cache.events.on("keyUpdateAge", (key, newAge) => {
    //To Do
})

keyGet

cache.events.on("keyGet", (key) => {
    //To Do
})

keyDelete

cache.events.on("keyDelete", (key) => {
    //To Do
})

keyHas

cache.events.on("keyHas", (key, has) => {
    //To Do
})

cacheLength

cache.events.on("cacheLength", (length) => {
    //To Do
})

cacheClear

cache.events.on("cacheClear", () => {
    //To Do
})

About

Um simples LRU Cache criado para meus proprios projetos

Resources

License

Stars

Watchers

Forks

Packages