Este artigo apresenta os métodos e etapas do uso do Redis Cache no projeto Springboot. Vou compartilhar com você. Os detalhes são os seguintes:
Os dados da primavera Redis encapsulam várias operações do cliente Redis para simplificarmos o uso.
- Quando o Redis é usado como um banco de dados ou fila de mensagens, geralmente usamos o Redistemplate para operar
- Quando o Redis é usado como cache, podemos usá -lo como uma implementação do cache da mola, usando -o diretamente através da anotação
1. Visão geral
A utilização de cache redis efetivamente em aplicativos pode melhorar bem o desempenho do sistema, especialmente para operações de consulta, o que pode reduzir efetivamente a pressão do banco de dados.
Para um código específico, consulte este projeto de exemplo
2. Adicione uma referência
Junte -se ao Build.gradle
Compile ('org.springframework.boot: Spring-Boot-Starter-Data-Redis')A Springboot introduzirá automaticamente pacotes JAR relacionados a Redis. Depois de adicionar essa referência, você precisa instalar o Redis localmente e iniciá -lo; caso contrário, um erro será relatado quando o programa iniciar.
3. Ativar cache através de anotações
É muito simples ativar o Redis no Springboot. Você só precisa adicionar a anotação @enableCaching na classe principal do aplicativo e, em seguida, adicionar a anotação @cacheable no método de consulta que precisa ativar o cache.
@SpringbooTApplication@EnableCachingPublic Classe DemoApplication implementa commandLinerunner {...Interface de consulta:
Public Interface TestRepository estende JPoSepository <Test, Integer> {@cacheable (value = "testCache") Teste público findOne (ID inteiro);}As classes de entidade precisam implementar a interface serializável; caso contrário, o programa relatará um erro porque o objeto Java não pode ser serializado no Redis. O Redis no Springboot usa o DefaultSerializer por padrão, que usa o método de serialização do próprio JDK.
Há um total dos seguintes métodos de serialização. Para cenários de uso específicos, consulte a documentação oficial.
1. GenericJackson2JSONredisserializer
2. GenericStringSerializer
3
4. JacksonjsonRedisserializer
5
6. Oxmserializer
7. StringRedisseRializer
Neste ponto, nosso programa tem a capacidade de consultar dados do cache Redis. Se você não se importa com a estética da chave armazenada em Redis, o trabalho terminará.
4. Chave linda
Depois de executar nosso programa, execute o comando chave * em Redis-cli e você descobrirá que o valor da chave é um monte de coisas semelhantes ao código distorcido:
"Testcache: /xac/xed/x00/x05sr/x00/x11java.lang.integer/x12/xe2/xa0/xa4/xf7/x81/x878/x02/x00/x01i/x0 0/x05ValueExr/x00/x10java.lang.number/x86/xac/x95/x1d/x0b/x94/xe0/x8b/x02/x00/x00xp/x00/x00/x00/x01 "
O valor -chave nisso provavelmente é inaceitável para o pessoal de operação e manutenção da Redis. Precisamos encontrar uma maneira de fazer com que o valor chave pareça melhor, pelo menos para fazer as pessoas entenderem.
O motivo do valor da chave acima é que a classe SimpleKey é usada por padrão na primavera para gerar a tecla Redis.
A solução também é muito simples. Adicione a configuração do cache e especifique como o redis gera chaves:
@ConfigurationPublic Class CacheConfig estende o CachingConfigurersupport {@AUTOWIRED PRIVED REDISTEMPLATE REDISTEMPLATE; @Bean public Cachemanager Cachemanager () {Redistemplate.SetKeySerializer (New GenericTringSerializer <Becjat> (Object.Class)); Rediscachemanager Cachemanager = novo Rediscachemanager (Redistemplate); Cachemanager.SetDefaultExpiration (3600); cachemanager.setUsePrefix (true); cachemanager.setCachePrefix (novo rediscachePrefix () {private final redisserializer <tring> serializer = new StringRedisseRializer (); private final string delimiter = ":" public byte [] prefix (string cacheName) {thisserializer .d); Retornar Cachemanager; }}em
A cópia do código é a seguinte:
Redistemplate.SetKeySerializer (New GenericTringSerializer <Bect> (Object.Class));
Esta linha de código especifica o método de geração dos valores -chave no Redis. O método de serialização do genericTringSerializer converterá o objeto Java em uma string e o armazenará em redis.
5. Resumo
A ativação do cache Redis no Springboot é muito simples, você só precisa adicionar algumas anotações. Ao mesmo tempo, podemos adicionar a configuração do cache para fazer com que os valores das chaves armazenados no Redis tenham boa legibilidade, em vez de um monte de dados distorcidos.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.