Jedis is a Java-oriented client officially launched by Redis, which provides many interfaces for Java language calls. It can be downloaded from the Redis official website. Spring-data-redis is part of the spring family. It provides access to the redis service through simple configuration in the srping application, and highly encapsulates the reids underlying development package (Jedis, JRedis, and RJC). RedisTemplate provides various redis operations
spring-data-redis provides the following functions for jedis:
The connection pool automatically manages and provides a highly encapsulated "RedisTemplate "Class.
Classifies and encapsulates a large number of APIs in the jedis client, and encapsulates the same type of operations into operation interfaces.
ValueOperations : Simple K-V operation
SetOperations: set type data operation
ZSetOperations: zset type data operation
HashOperations: for map type data operation
ListOperations: For list type data operations
3. Encapsulate transaction operations and have container control.
4. A variety of optional strategies (RedisSerializer) are provided for the "serialization/deserialization" of data
JdkSerializationRedisSerializer: access scenarios for POJO objects, using JDK itself for serialization Mechanism.
StringRedisSerializer: When the Key or value is a string, the byte sequence of the data is encoded into a string according to the specified charset, which is "new String(bytes, charset)" and "string.getBytes(charset) )" direct encapsulation. is the most lightweight and efficient strategy.
JacksonJsonRedisSerializer: The jackson-json tool provides conversion capabilities between javabean and json. It can serialize pojo instances into json format and store them in redis, and can also convert json format data into pojo instances.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
spring: redis: host: 192.168.31.100 port: 6379 password: 111 database: 0 pool: max-active: 8 # 连接池最大连接数(使用负值表示没有限制) max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) max-idle: 8 # 连接池中的最大空闲连接 min-idle: 0 # 连接池中的最小空闲连接 timeout: 5000ms # 连接超时时间(毫秒)
Add the above configuration under spring in the application.yml file
package com.ffyc.back.demo.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfig { /** * 序列化键,值 * @param connectionFactory * @return */ @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class); StringRedisSerializer redisSerializer = new StringRedisSerializer(); redisTemplate.setKeySerializer(redisSerializer); redisTemplate.setHashKeySerializer(redisSerializer); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); return redisTemplate; } }
Add this configuration in the configuration package
The function of this configuration class is to serialize the data to be passed by the backend to json. If there is no such configuration, the backend If the passed format does not match the redis side, garbled characters will appear
Inject it where you need to use it and you can use it
(1)
(2)
The above is the detailed content of How SpringBoot integration uses Redis. For more information, please follow other related articles on the PHP Chinese website!