(1) Pom.xml apresenta o pacote JAR, como segue:
<Depencency> <PuerpId> org.springframework.boot </frugiD> <stifactId> Spring-boot-starter-dados
(2) Modifique a classe de inicialização do projeto, adicione anotação @enableCaching e ative a função de armazenamento em cache, como segue:
pacote springboot; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootApplication; importar org.springframework.cache.annotation.enablecaching; org.springframework.scheduling.annotation.enablescheduling;@springbootapplication@enablecheduling@EnableCachingPublic Classe SpringbootApplication {public static void main (string [] args) {springApplication.run (springbootAppatication.class, args); }}(3) Configure as informações de conexão Redis no Application.properties, como segue:
# Redis Banco de dados Índice (padrão é 0) spring.redis.database = 0# Redis Server Endereço Spring.redis.host = 172.31.19.222# Redis Server Connection Port spring.redis.port = 6379# Redis Server Connection Senha (Defeult está vazio) Spring.Rester. Bloqueio máximo Tempo de espera para o pool de conexões (usando valores negativos significa sem limite) spring.redis.pool.max-wait = -1# conexão inativa máxima no pool de conexão spring.redis.pool.max-idle = 8# conexão inativa mínima no pool de conexão spring.redis.pool.min-idle = 0# Timeout (milisEConds) spring.red.red.red.Pool.Min-IDLE = 0#
(4) Crie uma nova classe de configuração do Redis Cache Redisconfig, como segue:
package springboot.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.CachingConfigurerSupport;import org.springframework.cache.annotation.EnableCaching;import org.springframework.context.annotation.bean; importar org.springframework.context.annotation.configuration; importar org.springframework.data.redis.cache.redisconger; import org.springframework.data.red.connection.redisconnection; org.springframework.data.redis.core.redistemplate; importar org.springframework.data.redis.core.stringredistemplate; import org.springframework.data.redis.serializer.jackson2JannEstRaClorizer; com.dataMlmlmlml.Redis.serializer.JONSONETRATETRATILIZER; com.fasterxml.jackson.annotation.propertyAccessor; import com.fasterxml.jackson.databind.objectmapper;/** * Redis Cache Configuration Class * @author szekinwin * */@configuration@enableCachingpublic Class Redisconfig Cachingfing Cachingfin @Value ("$ {spring.redis.host}") host private string; @Value ("$ {spring.redis.port}") private int porta; @Value ("$ {spring.redis.timeout}") private int timeout; // Estratégia de geração de chaves de cache personalizada // @bean // public keyGenerator keyGenerator () {// retorna new keyGenerator () {// @substituir // public Object Generate (destino do objeto, java.lang.reflect.method Método, objeto ... param) {// stringbuffer sb = stringbuffer (); sb.append(target.getClass().getName());// sb.append(method.getName());// for(Object obj:params){// sb.append(obj.toString());// }// return sb.toString();// }// };// } // } // } // } // } // Cache Manager @Bean Public Cachemanager Cachemanager (@SuppressWarnings ("RawTypes") Redistemplate Redistemplate) {Rediscachemanager Cachemanager = novo Rediscachemanager (Redistemplate); // Definir tempo de expiração do cache Cachemanager.SetDefaultExpiration (10000); Retornar Cachemanager; } @Bean public Redistemplate <String, String> Redistemplate (RedisconnectionFactory Factory) {StringReDistemplate modelo = new StringReDistemplate (Factory); setSerializer (modelo); // Defina o modelo da ferramenta de serialização.AFterPropertiesset (); modelo de retorno; } private void setSerializer (modelo StringReDistemplate) {@suppresswarnings ({"RawTypes", "desmarcado"}) Jackson2jsonRedisserializer Jackson2jsonRenDisserializer = new Jackson2JsonRedisSerializer (Object.Class); ObjectMapper OM = new ObjecjotMapper (); om.setVisability (PropertyAccessor.all, jsonAutodetect.Visability.any); om.enabledfaulttyping (objectmapper.defaulttyping.non_final); Jackson2jsonRedisserializer.setObjectMapper (OM); template.setValueSerializer (Jackson2JsonRedisSerializer); }}(5) Crie um novo UserMApper, como segue:
package springboot.dao;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotações.update; importar org.springframework.cache.annotation.cacheconfig; importar org.springframework.cache.annotation.cacheevict; import org.springframework.cache.annotation.cacheput; importação; springboot.domain.user;@mapper@cacheConfig (cachenames = "usuários") interface pública UserMApper {@insert ("inserir no usuário (nome, idade) valores (#{name},#{idade})") int addUser (@param ("name") string,@param ("idade); @Select ("Selecione * do usuário onde id =#{id}") @cacheable (key = "#p0") usuário findbyid (@param ("id") string id); @Cacheput (key = "#p0") @update ("update user Set Name =#{name} onde id =#{id}") void updateById (@param ("id") string id,@param ("name") nome da string); // Se especificado como verdadeiro, todos os caches serão limpos imediatamente após o método ser chamado @cacheevict (key = "#p0", allentries = true) @Delete ("excluir do usuário onde id =#{id}") void DeleteById (@Param ("id") string id);} ")@Cacheable cache o resultado da consulta para redis, (key = "#p0") especifica o primeiro parâmetro transmitido como a chave do redis.
@Cacheput, especifique a chave, sincronize os resultados atualizados com Redis
@Cacheevict, especifique a chave, exclua dados de cache, allentries = true, o cache será limpo imediatamente após o método ser chamado
(6) A camada de serviço e a camada do controlador são integradas como o artigo anterior. Inicie o servidor Redis. Você pode consultar o blog anterior para a instalação e inicialização do servidor Redis. O endereço é o seguinte:
http://www.cnblogs.com/gdpuzxs/p/6623171.html
(7) Configure as informações do log da seguinte forma:
## log4j Configuração log4j.rootcategory = Debug, stdout ## Saída do console log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %C {1}: %L - %m %n(8) Verifique o cache Redis
Primeiro, inserimos uma parte dos dados na tabela de usuários, e o banco de dados é exibido da seguinte maneira:
Agora, vamos consultar os dados com id = 24 na tabela de usuários, e a saída de informações do console Guanzi é a seguinte:
Através das informações de saída do console, podemos saber que desta vez a consulta do banco de dados foi executada e os resultados da consulta do Redis Cache foram ativados. Em seguida, consultemos os dados com id = 24 na tabela de usuários novamente e observamos o console, como segue:
Através das informações de saída do console, podemos saber que, desta vez, não executamos a consulta do banco de dados, mas, em vez disso, a consultamos do Cache Redis e retornamos o resultado da consulta. Verificamos as informações em Redis, como segue:
O método do método FindUser usa o anotação @cacheable (key = "#p0"), o que significa que o ID é usado como o valor da chave no Redis. Quando atualizamos os dados, devemos usar @cacheput (key = "#p0") para atualizar os dados em cache; caso contrário, os dados sujos serão consultados.
Resumir
O exposto acima é o método de implementação do Springboot usando o Redis Cache introduzido pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo!