Este artículo presenta los métodos y pasos de usar el caché Redis en el proyecto SpringBoot. Lo compartiré contigo. Los detalles son los siguientes:
Spring Data Redis encapsula varias operaciones del cliente Redis para que simplifiquemos el uso.
- Cuando Redis se usa como base de datos o cola de mensajes, generalmente usamos redistemplate para operar
- Cuando Redis se usa como caché, podemos usarlo como una implementación de Spring Cache, utilizándolo directamente a través de la anotación
1. Descripción general
La utilización efectiva de la memoria caché redis en aplicaciones puede mejorar bien el rendimiento del sistema, especialmente para las operaciones de consulta, lo que puede reducir efectivamente la presión de la base de datos.
Para un código específico, consulte este proyecto de ejemplo
2. Agregue una referencia
Únete en Build.gradle
compile ('org.springframework.boot: spring-boot-starter-data-redis')SpringBoot introducirá automáticamente los paquetes JAR relacionados con Redis. Después de agregar esta referencia, debe instalar Redis localmente y iniciarla, de lo contrario, se informará un error cuando comience el programa.
3. Habilite el caché a través de anotaciones
Es muy simple habilitar Redis en Springboot. Solo necesita agregar la anotación @enablecaching en la clase principal de la aplicación, y luego agregar la anotación @cachable en el método de consulta que necesita habilitar el caché.
@Springbootapplication@EnlecachingPublicPublic Class DemoApplication implementa CandionLinerunner {...Interfaz de consulta:
La interfaz pública TestRepository extiende jParepository <test, integer> {@cacheable (value = "testCache") public test findOne (ID de entero);}Las clases de entidad deben implementar la interfaz Serializable, de lo contrario, el programa informará un error porque el objeto Java no puede ser serializado en Redis. Redis en SpringBoot utiliza defaultSerializer de forma predeterminada, que utiliza el método de serialización propio de JDK.
Hay un total de los siguientes métodos de serialización. Para obtener escenarios de uso específicos, consulte la documentación oficial.
1. GenericJackson2JsonRedisserializer
2. GenericTostringserializer
3. Jackson2JsonRedisserializer
4. Jacksonjsonrediserializer
5. JDKSerializationRedisserializer
6. oxmserializer
7. StringDrediserializer
En este punto, nuestro programa tiene la capacidad de consultar los datos del caché Redis. Si no le importa la estética de la llave almacenada en Redis, el trabajo terminará.
4. Hermosa llave
Después de ejecutar nuestro programa, ejecute el comando Key * en Redis-Cli y encontrará que el valor de la clave es un montón de cosas similares al código confuso:
"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 ""
El valor clave en esto es probablemente inaceptable para el personal de operación y mantenimiento de Redis. Necesitamos encontrar una manera de hacer que el valor clave se vea mejor, al menos para que las personas lo entiendan.
La razón del valor de la clave anterior es que la clase SimpleKey se usa de forma predeterminada en Spring para generar la tecla Redis.
La solución también es muy simple. Agregue la configuración de caché y especifique cómo Redis genera claves:
@ConfigurationPublic Class Cacheconfig extiende CachingConfigursUpport {@aUtowired Redistemplate privado redistemplate; @Bean Public Cachemanager Cachemanager () {redistemplate.setKeySerializer (nuevo genericestringeSerializer <ject> (object.class)); Rediscachemanager Cachemanager = nuevo Rediscachemanager (redistemplate); Cachemanager.setDefaultExpiration (3600); Cachemanager.SetUseprefix (verdadero); Cachemanager.SetCacheprefix (new RedIsCacheprefix () {private final rediserializer <String> serializer = new StringRedisSerialer (); private final String Delimiter = ":"; public Byte [] prefix (String Cachename) {return this.serializer .serialize (cachename.concat (this.delimiter);});});});});});});});});});});});}); Volver a Cachemanager; }}en
La copia del código es la siguiente:
redistemplate.setKeySerializer (nuevo genericestringeSerializer <ject> (object.class));
Esta línea de código especifica el método de generación de valores clave en Redis. El método de serialización de GenericToStringSerializer convertirá el objeto Java en una cadena y lo almacenará en Redis.
5. Resumen
Habilitar el caché Redis en Springboot es muy simple, solo necesita agregar algunas anotaciones. Al mismo tiempo, podemos agregar la configuración de caché para que los valores clave almacenados en Redis tengan una buena legibilidad, en lugar de un montón de datos confusos.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.