O Hypermnesia é um sistema de cache local compatível com aplicações NodeJs, podendo também ser utilizado diretamente no browser.
Desenvolvi com foco em alta performance na comparação de chaves, permitindo buscar, apagar ou inserir itens em O(log n) no pior caso possível.
Você deve usar esse sistema de caching especialmente em situações como:
- Dado uma chave, existe um custo envolvido em calcular/buscar o valor correspondente a ela – e certamente você vai precisar fazer isso algumas vezes.
- Você não vai precisar usar mais memória RAM do que o sistema disponibiliza, portanto não precisando guardar o cache em disco.
- Itens recém criados ou buscados são recuperados com mais rapidez que os demais (utilizando o algoritmo de busca Splay Tree).
- Pode limitar a quantidade de itens, isto é, apagando os itens usados com menor frequência.
- Pode necessitar que os itens se auto-atualizem após certo tempo.
O Hypermnesia já esta disponível via npm ou minimizado diretamente no repositório Github. Lá você pode encontrar mais detalhes sobre a utilização e a documentação dos métodos.
Por que usar cache em uma aplicação
Existem diferentes tipos de cache como de nível de aplicativo, de sessão, de disco, cache de memória, etc. Certamente que escolher o tipo certo depende de cada caso específico e necessidade do projeto.
Caches na melhora de desempenho
Acessar dados em cache é geralmente muito mais rápido do que acessar dados em armazenamento primário, como um banco de dados ou disco. Isso é especialmente verdadeiro se a aplicação precisa acessar os mesmos dados várias vezes.
Cache na Redução de carga no banco de dados
Enquanto uma aplicação precisa acessar um grande número de dados, armazená-los em cache pode reduzir a carga no banco de dados. Isso pode ajudar a evitar problemas de sobrecarga e lentidão no banco de dados.
Acesso offline
Se uma aplicação precisa acessar dados quando a conexão com a internet é instável ou não disponível, armazenando esses dados em cache pode permitir então que a aplicação continue a funcionar mesmo sem conexão.
Redução de custos
Armazenar dados em cache pode ajudar a reduzir os custos de armazenamento a longo prazo. Em vez de armazenar todos os dados em um banco de dados ou disco, você pode armazenar somente os dados mais importantes ou mais frequentemente acessados.
Escalabilidade
Se uma aplicação precisa lidar com um grande volume de tráfego, armazenar dados em cache pode ajudar a escalar a aplicação. Isso pode ser feito simplesmente adicionando mais nós para lidar com o aumento do tráfego