Redis springboot integración uso básico

Redis puede almacenar la asignación entre las teclas y 5 diferentes tipos de estructuras de datos, estos cinco tipos de estructuras de datos son String (cadena), la lista (lista), el conjunto (set), el hash (hash) y zConfigurar (ordenada colección)


Cadena puede ser una cadena, número entero o de coma flotante para toda la cadena o cadenas en el que parte de la realización de la operación, y un incremento de destino de ejecución de coma flotante (incremento) o decremento (Disminuir)

Lista A lista enlazada, cada nodo en la lista contiene un empuje o un elemento de pop-up en los extremos de cadena de la lista; lista de acuerdo con el ajuste de desviación (TRIM); Lee una sola o una pluralidad de elementos; El valor Encuentra o eliminar elementos

Estableció que comprende un colector cadena aleatoria (unorderedcollection), y cada cadena está contenida es único, diferente Add, Obtener, eliminar los elementos individuales; comprobación de si hay un elemento en un conjunto; calculando intersección, unión, diferencia, llegar a lucir de la colección de elementos aleatorios

tabla hash de hash contiene pares de valores clave no ordenadas para agregar, obtener, quitar un solo pares de valores clave, obtener todos los pares de valores clave

ZConfigurar mapeo entre el miembro ordenado cadena (miembro) y la puntuación de punto flotante (Score), se añaden los elementos en el orden determinado por la puntuación de tamaño, la adquisición, borrar un solo elemento; de acuerdo con el rango de valores (rango) o miembros Obtiene el elemento

Nota: Java Bean para serializar


1. Dependencia de las importaciones

// Gradle

grupo de compilación: 'org.springframework.boot', nombre: 'primavera-boot-starter-Data-Redis', versión: '2.1.3.RELEASE'


// pom

<Dependency>

    <GroupId> org.springframework.boot </ groupId>

    <> ArtifactId primavera-boot-arrancadores de datos Redis </ artifactId>

    <Versión> 2.1.3.RELEASE </ version>

</ Dependency>

1

2

3

4

5

6

7

8

9

2. Configurar Redis

redis.config


@Configuración

public class {RedisConfig


    // se utiliza para resolver el problema, entonces los Redis operativos secuencia de anotación

    @Bean (name = "myCacheManager")

    pública CacheManager cacheManager (RedisConnectionFactory redisConnectionFactory) {


        RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter (redisConnectionFactory);

        RedisSerializer <Objeto> jsonSerializer = nuevo GenericJackson2JsonRedisSerializer ();

        RedisSerializationContext.SerializationPair <Objeto> par = RedisSerializationContext.SerializationPair

                .fromSerializer(jsonSerializer);

        RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig ()

                .serializeValuesWith (par);

        defaultCacheConfig.entryTtl (Duration.ofMinutes (30));

        volver nueva RedisCacheManager (redisCacheWriter, defaultCacheConfig);

    }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

    / **

 * Resuelve el problema con la secuencia de operaciones redisTemplate

 *

 * @Param RedisConnectionFactory fábrica

 * @Return redisTemplate

 * /

    @Frijol

    @ConditionalOnMissingBean (name = "redisTemplate")

    pública RedisTemplate <String, Object> redisTemplate (fábrica RedisConnectionFactory) {

        // Configurar redisTemplate

        RedisTemplate <String, Object> redisTemplate = new RedisTemplate <> ();

        redisTemplate.setConnectionFactory (de fábrica);

        // serialización clave

        redisTemplate.setKeySerializer (STRING_SERIALIZER);

        // valor de serialización

        redisTemplate.setValueSerializer (JACKSON__SERIALIZER);

        // clave serialización Hash

        redisTemplate.setHashKeySerializer (STRING_SERIALIZER);

        // valor Hash serialización

        redisTemplate.setHashValueSerializer (JACKSON__SERIALIZER);

        redisTemplate.afterPropertiesSet ();

        volver redisTemplate;

    }


}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

24

25

configuración de clase de inicio


@EnableCaching // operación de caché permite la anotación

@SpringBootApplication

ShoppingMallApplication public class {

   public static void Main (args String []) {

      SpringApplication.run (ShoppingMallApplication.class, args);

   }

}

1

2

3

4

5

6

7

arreglo application.yml


#redis caché de configuración

repetir:

  base de datos: 0

  host: @ip

  Puerto: 6379

  Tiempo de espera: 8000

  # Si no hay tiempo para escribir

  contraseña:

  jedis:

    piscina:

      # Conexión de piscina número máximo de conexiones

      max-activo: 10

      # Piscina tiempo máximo de bloqueo de conexión

      max-espera: -1

      # Las conexiones inactivas mínimo de agrupación de conexiones

      min-inactivo: 0

      # conexiones inactivas máxima de conexión de la piscina

      max-reposo: 8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

3. comentario introducción caché

El resultado de la operación de la caché método, más tarde a los mismos datos, cacheNames de acceso y clave directamente desde la memoria caché debe rellenar, si no llena la clave, clave por defecto es el nombre del método actual, ya que los diferentes métodos se actualizan cuando se actualiza el caché fracaso

valor: especifica el nombre de memoria caché puede especificar una pluralidad (array)

clave: datos de la caché clave que se utilizan para los parámetros del método por defecto apoyan SPEL

keygenerator: generador de claves

CacheManager: Especifica el administrador de caché, o para obtener un programa de análisis, tanto de segunda elección

condición: la condición especificada caché

a menos que: Negativa a menos caché cuando la condición es verdadera, no se almacenará en caché el valor de retorno, los resultados de discriminación pueden ser adquiridas.

sync: si asíncrono no son compatibles a menos


@Cacheable (cacheNames = "xxx", key = "xxx")

1

Ambos métodos son invocados para actualizar un dato caché modificar la base de datos durante la actualización de la memoria caché, primero llama al método de destino estará dirigido a métodos en caché, a la atención de cambios, y la clave para consultar al mismo tiempo, de lo contrario el caché no se actualiza, la propiedad y @Cacheable mismo


@CachePut (cacheNames = "xxx", key = "xxx")

1

Borrar la caché

allEntries: Eliminar todos los campos almacenados en caché

beforeInvocation: si antes de que el método


@CacheEvict (cacheNames = "XXX", clave = "xxx")

1

@CacheConfig

Puede especificar la estrategia de generación de clave pública

cacheNames Pública (valor) se puede escribir en una clase unificada anteriormente no cubren todos los caché en un nombre todavía

CacheManager pública


@CacheConfig (cacheNames = "producto")

ProductInfoController public class {

  

    @Caching (cacheable = {} @Cacheable, puesto = {} @CachePut)

    pública de respuesta <Map <String, Object >> buyProduct () {

          // Para ello sthing

    }

}

1

2

3

4

5

6

7

8

Key se puede establecer en un método parámetro dinámico (apoyo EL)


@Cacheable (cacheNames = "xxx", key = "#openid")

pública ResultVO <OrderDTO> detalle (@RequestParam ( "OpenID") Cadena OpenID) {

      // hacer sthing

}

1

2

3

4

compuesto comentario

Ir a actualizar los datos en la caché cuando los datos de la consulta //

Zhengzhou hospital de la infertilidad: http: //www.zzchyy110.com/

@Caching (cacheable = {} @Cacheable, puesto = {} @CachePut)

@Caching (cacheable = {@Cacheable}, put = {@CachePut}, evict = {@CacheEvict})

1

2

4. Prueba

Notas de versión:


@CacheConfig (cacheNames = "-ProductInfo comercial") // nombre personalizado

ProductInfoController public class {   

    // uso sencillo 

    @Caching (cacheable = {} @Cacheable, puesto = {} @CachePut)

    pública de respuesta <Map <String, Object >> getAllInfoById (@ApiParam ( "商品 ID") @RequestParam Entero id) {

        // hacer sthing

    }

}

1

2

3

4

5

6

7

8

Redistemplate 版:


@Autowired

redisTemplate RedisTemplate privado;


 @Prueba 

demostración public void () {


    // ReDiS tipo común de manipulación de datos que no figuran conjunto zConfigurar

        

    // tipo de datos de cadena

    redisTemplate.opsForValue () conjunto ( "test", "123").;

    redisTemplate.opsForValue (). get ( "test") // salida es 123

    

   // lista de tipos de datos

   . RedisTemplate.opsForList () rightPushAll ( "lista", nuevo String [] { "1", "2", "3"}); // inserto elementos de la derecha

   . RedisTemplate.opsForList () alcance ( "lista", 0, -1); // Obtener todos los elementos

   . RedisTemplate.opsForList () de índice ( "listRight", 1); // Obtener elemento subíndice 2

   . RedisTemplate.opsForList () rightPush ( "listRiht", "1"); // también se inserta desde el lado derecho desde la izquierda y interpolados

   redisTemplate.opsForList () leftPop ( "lista") ;. // elementos del estallido de los elementos del estallido de izquierda no existirán


   //picadillo

   redisTemplate.opsForHash () Haskey ( "redisHash", "111") ;. // determina si existe la tecla de almohadilla

   redisTemplate.opsForHash put () ( "redisHash", "nombre", "111") ;. // almacena los datos de hash

   . RedisTemplate.opsForHash () teclas ( "redisHash"); // Obtener el valor hash de la clave correspondiente a

   redisTemplate.opsForHash get () ( "redisHash", "edad") ;. // obtener el valor hash para una clave dada

 


Supongo que te gusta

Origin blog.51cto.com/14510351/2483959
Recomendado
Clasificación