(1) Pom.xml presenta el paquete JAR, de la siguiente manera:
<Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactid> spring-boot-starter-data-redis </artifactid> </dependence>
(2) Modifique la clase de inicio del proyecto, agregue anotación @enablecaching y habilite la función de almacenamiento en caché, de la siguiente manera:
paquete springboot; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.cache.annotation.enablecaching; importación; org.springframework.scheduling.annotation.ableableCheduling;@springbootapplication@habilitionCheduling@habilicado class springbootapplication {public static void main (string [] args) {springapplication.run (springbootapplication.class, args); }}(3) Configure la información de conexión Redis en Application.Properties, de la siguiente manera:
# Índice de base de datos redis (predeterminado es 0) spring.redis.database = 0# dirección del servidor redis spring.redis.host = 172.31.19.222# puerto de conexión del servidor redis spring.redis.port = 6379# contraseña de conexión del servidor redis (predeterminado está vacío) spring.redis.password =# número máximo de conexiones a la combinación de conexión (usando valores negativos no limit) spring) spring). Tiempo de espera de bloqueo máximo para el grupo de conexión (usar valores negativos no significa límite) spring.redis.pool.max-wait = -1# conexión inactiva máxima en el grupo de conexión spring.redis.pool.max-idle = 8# conexión inactiva mínima en el grupo de conexión.redis.pool.min-irle = 0# tiempo de conexión (milisegunds) spring.redis.timeout = 0 0
(4) Cree una nueva clase Redisconfig de configuración de Redis Cache, como sigue:
paquete springboot.config; import org.springframework.beans.factory.annotation.value; import org.springframework.cache.cachemanager; import org.springframework.cache.annotation.cachingconfigurerSupport; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; import org.springframework.data.redis.cache.rediscachemanager; import og.springframework.data.redis.conconnection.Redisconnectional; import org.springframework.data.redis.core.redistemplate; import org.springframework.data.redis.core.stringredistemplate; import org.springframework.data.redis.serializer.jackson2jsonedisserializer; com.fasterxml.jackson.annotation.propertyAccessor; import com.fasterxml.jackson.databind.objectMapper;/** * Redis Cache Configuration Class * @author Szekinwin * */@Configuration@EndableChingPublicPpublic Redisconfig Extends CachingConfigurersuPpport { @Value ("$ {spring.redis.host}") host de cadena privada; @Value ("$ {spring.redis.port}") private int puerto; @Value ("$ {spring.redis.timeout}") private int timeOut; // estrategia de generación de teclas de caché personalizado // @bean // public keyGenerator keyGenerator () {// return nuevo keyGenerator () {// @override // public object generate (objetivo de objeto, java.lang.reflect.method método, objeto ... params) {// stringbuffer sb = new 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 (@SupessWarnings ("RawTypes") redistemplate redistemplate) {redisCachemanager Cachemanager = new Rediscachemanager (redistemplate); // establecer tiempo de vencimiento de caché Cachemanager.setDefaultExpiration (10000); Volver a Cachemanager; } @Bean public Redistemplate <String, String> redistemplate (redisConnectionFactory factory) {stringRedistEmplate Template = new StringRedistEmplate (factory); setSerializer (plantilla); // Establezca la plantilla de herramienta de serialización. AFTERPROPERTIESSET (); plantilla de retorno; } private void setSerializer (plantilla StringRedistEmplate) {@SupplessWarnings ({"RawTypes", "desactivado"}) Jackson2JsonRedisserializer Jackson2JSonredisserializer = new Jackson2JSonredisserializer (Object.Class); ObjectMapper om = new ObjectMapper (); om.setVisability (PropertyAccessor.all, jsonautodetect.visability.yy); om.enabledFaultTyping (ObjectMapper.DefaultTyping.Non_Final); Jackson2JSONREDISSERIATER.SetObjectMapper (OM); Template.SetValuueSerializer (Jackson2JsonRedisserializer); }}(5) Cree un nuevo Usermapper, como sigue:
paquete springboot.dao; importar org.apache.ibatis.annotations.delete; import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.mapper; importar org.apache.ibatis.annotations.param; import org.apache.annotations.select; import org.apache.ibatis.annotations.update; import org.springframework.cache.annotation.cacheconfig; import org.springframework.cache.annotation.cacheEvict; import org.springframework.cache.annotation.cacheput; import org.springframe.cache.cache.cache springboot.domain.user;@mapper@cacheconfig (Cachenames = "usuarios") Public Interface Usermapper {@Insert ("Insertar en usuarios de usuario (name, edad) valores (#{name},#{edad})") int adduser (@param ("name") name de cadena,@"edad") cadena); @Select ("Seleccionar * de User Where id =#{id}") @cacheable (key = "#p0") user findByid (@param ("id") id id); @Cacheput (Key = "#P0") @Update ("Update user set nombre =#{name} donde id =#{id}") void updateByid (@param ("id") string id,@param ("name") name de cadena); // Si se especifica como verdadero, todos los cachés se borrarán inmediatamente después de que el método se llame @CacheEvict (key = "#p0", allentries = true) @delete ("Eliminar del usuario donde id =#{id}") void deleteById (@param ("id") ID de cadena);}@Cachable Caches El resultado de la consulta a Redis, (Key = "#P0") especifica el primer parámetro que se pasa como la clave de Redis.
@Cacheput, especifique la clave, sincronice los resultados actualizados a Redis
@CacheEvict, especificar clave, eliminar datos de caché, allentries = true, el caché se borrará inmediatamente después de llamar al método
(6) La capa de servicio y la capa del controlador están integradas como el artículo anterior. Inicie el servidor Redis. Puede consultar el blog anterior para la instalación y el inicio del servidor Redis. La dirección es la siguiente:
http://www.cnblogs.com/gdpuzxs/p/6623171.html
(7) Configure la información del registro de la siguiente manera:
## log4j Configuración log4j.rootcategory = debug, stdout ## Salida de la consola log4j.appender.stdout = org.apache.log4j.consoleppenderlog4j.appender.stdout.layout = org.apache.log4j.patternlayoutlog4j.appender.stdout.layout.conversionPattern = %d {yyyyy-mm-dd hh: mm: ss, sss} %c {1}: %l - %m %n(8) Verifique el caché de Redis
Primero, insertamos una pieza de datos en la tabla de usuario, y la base de datos se muestra de la siguiente manera:
Ahora, consultemos los datos con id = 24 en la tabla de usuario, y la salida de información de la consola Guanzi es el siguiente:
A través de la información de salida de la consola, podemos saber que esta vez se ejecutó la consulta de la base de datos y los resultados de la consulta de caché redis se habilitaron. A continuación, consultamos los datos con id = 24 en la tabla de usuario nuevamente y observamos la consola, de la siguiente manera:
A través de la información de salida de la consola, podemos saber que esta vez, no ejecutamos la consulta de la base de datos, sino que la consultamos desde el caché redis y devuelve el resultado de la consulta. Verificamos la información en Redis, como sigue:
El método FindUser Method utiliza la anotación @Cachable (Key = "#P0"), lo que significa que ID se usa como el valor clave en Redis. Cuando actualizamos los datos, debemos usar @Cacheput (Key = "#P0") para actualizar los datos en caché, de lo contrario, se consultarán los datos sucios.
Resumir
Lo anterior es el método de implementación de SpringBoot utilizando Redis Cache introducido por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor te responderá a tiempo.