6
respostas

Array ou Objeto no Cache ao iniciar a aplicação

Tenho uma aplicação que usa uma lista pré-determinada em diversos pontos.

Gostaria de saber se é uma boa ideia deixar essa lista em cache? Caso seja como fazer isso logo ao iniciar a aplicação.

Obrigado

6 respostas

Oi Rafael, tudo bem?

Acredito que depende... Essa lista é realmente muito utilizada? Atualizada? Ela é mantida no banco?

Manter a lista no cache (do db) pode ser uma boa idéia pra evitar buscar a lista no banco várias vezes. Apesar de ser uma boa idéia, lembre-se de que se essa lista sofre muitas alterações, você vai precisar salva-las e também programar uma limpesa no cache para que as atualizações estejam sempre presentes no cache.

Uma outra alternativa, pode ser usar a sessão, mas depende muito do caso. No geral, se não enxergar problemas, faça uso.

Espero ter ajudado, bons estudos.

Tudo tranquilo Wanderson. Ela praticamente nunca vai ser alterada. É uma lista de postos do Exército (Soldado, Cabo, Sargento, Capitão...etc).

Na hora de cadastrar um militar, filtrar um relatório, entre outras funções, utilizo essa lista.

Queria ter ela de fácil acesso e que essa recuperação da lista não dependesse de busca no banco.

Em qual cache você recomenda, dentro dessa situação?

Rafael, o Laravel já provê uma forma de trabalhar com Cache.

No seu caso, você pode o chace em arquivo ou em array. É os que acho mais simples e que funcionam bem. Para criar o cache, você pode usar um evento, tipo, ao carregar tal view, faça cache da lista em tal lugar...

Aconselho a dar uma olhada na documentação:

https://laravel.com/docs/5.2/events

https://laravel.com/docs/5.2/cache

Mas existe algum arquivo que seja carregado quando a aplicação sobe, pra gente poder popular esse array uma vez só?

você pode deixar esse array mocado em um helper com uma class static e só chamar ele quando for precisso

Oi Allan, não existe esse tipo de modificar para classes no PHP. Rafael, você pode usar a estratégia de cache do proprio laravel para fazer chace do seu array em um arquivo. basta verificar as configurações.

Você não conseguiu pelos links que te passei?