Redis:使用SpringDataRedis进行连接操作?

发布时间 2023-04-18 18:03:28作者: 在博客做笔记的路人甲

使用流程

一、导入依赖

        <!--Redis依赖-->
        <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>

二、配置文件application.yml

spring:
  redis:
    host: 47.93.191.163
    port: 6379
    password: lurenjia
    #lettuce连接池
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 1000ms

三、代码实现

    //注入对象
    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    void testString(){
        //获取操作String类型的连接对象,并存入数据
        redisTemplate.opsForValue().set("name","lurenjia");
        //取出数据
        System.out.println(redisTemplate.opsForValue().get("name"));
    }

 

序列化器

默认使用的序列号器为jdk的序列化器,在key-value序列化时,会出现不友好的信息格式:

 解决办法:使用自定义的序列化器

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
        //1 创建RedisTemplate对象
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        //2 设置连接工厂
        redisTemplate.setConnectionFactory(factory);
        //3 创建序列化工具
        GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
        //4 设置key的序列化器,String类型、hash类型
        redisTemplate.setKeySerializer(RedisSerializer.string());
        redisTemplate.setHashKeySerializer(RedisSerializer.string());
        //5 设置value的序列化器,使用jackson提供的序列化器,能够转为json格式
        redisTemplate.setValueSerializer(jsonRedisSerializer);
        redisTemplate.setHashValueSerializer(jsonRedisSerializer);
        
        return redisTemplate;
    }
}