Uso simple de SpringDataRedis

La versión de SpringBoot es 2.x

Introducir dependencias

<dependency>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

Escribir un archivo de configuración

spring:
  redis:
    host: ip地址
    port: 6379
    password: 密码
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 100ms

clase de prueba de escritura

@SpringBootTest
class RedisDemoApplicationTests {
    
    
    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    void testString(){
    
    
        redisTemplate.opsForValue().set("name","shengyi");
        Object name = redisTemplate.opsForValue().get("name");
        System.out.println("name = " + name);
    }
}

SpringDataRedis serialización automática

@Configuration
public class RedisConfig {
    
    
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
    
    
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        //设置工厂
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //设置序列化工具
        GenericJackson2JsonRedisSerializer redisSerializer = new GenericJackson2JsonRedisSerializer();
        //采用string序列化
        redisTemplate.setKeySerializer(RedisSerializer.string());
        redisTemplate.setHashKeySerializer(RedisSerializer.string());
        //采用json序列化
        redisTemplate.setValueSerializer(redisSerializer);
        redisTemplate.setHashValueSerializer(redisSerializer);

        return redisTemplate;
    }
}

StringRedisTemplate proporcionado por Spring por defecto

La serialización de clave y valor es String de forma predeterminada.
Entonces, al acceder a objetos, se requiere serialización manual

@Autowired
    private StringRedisTemplate stringRedisTemplate;
    //JSON工具
    private static final ObjectMapper mapper = new ObjectMapper();

    @Test
    void stringRedisTemplateTest() throws JsonProcessingException {
    
    
        Student student = new Student("枫叶", 18);
        //手动序列化
        String s = mapper.writeValueAsString(student);
        //写入到redis
        stringRedisTemplate.opsForValue().set("student:1", s);

        //读取数据
        String s1 = stringRedisTemplate.opsForValue().get("student:1");
        //反序列化
        Student student1 = mapper.readValue(s1, Student.class);
        System.out.println("student1 = " + student1);
    }

Supongo que te gusta

Origin blog.csdn.net/weixin_53236380/article/details/128837283
Recomendado
Clasificación