【西瓜皮】Spring Boot 2.x 整合 Redis(一)

Spring Boot 2 整合 Redis(一)

Spring Boot 2.0.3简单整合Redis

IDEA Spring Initialzr 创建工程:选上Redis依赖项

【西瓜皮】Spring Boot 2.x 整合 Redis(一)

Maven依赖

// Spring Boot 1.5版本的依赖下artifactId是没有data的
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

application.yml文件的配置,其中Jedis配置有默认值,Spring Boot 2后默认的连接池是lettuce,后面会讲。

server:
  port: 6868

spring:
  redis:
    database: 0 # 0-15db
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 1200
    # Jedis的配置,可以不配置,有默认值(RedisProperties类中有指定默认值)
    jedis:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: -1

配置完可以直接注入使用

【西瓜皮】Spring Boot 2.x 整合 Redis(一)

// 测试StringRedisTemplate
    @GetMapping("/testStringRedisTemplate")
    public String testStringRedisTemplate() {
        String now = LocalDateTime.now().toString();
        stringRedisTemplate.opsForValue().set("key_" + now, now);
        return now;
    }

结果如下:

【西瓜皮】Spring Boot 2.x 整合 Redis(一)

在这里,实际上很少直接使用RedisTemplate<Object,Object> redisTemplate,一般是写Redis的配置类自定义RedisTemplate,接下来就实现自定义customRedisTemplate。

customRedisTemplate

@Configuration
public class RedisConfig {
    /**
     * 自定义RedisTemplate
     * @param connectionFactory
     * @return
     */
    @Bean
    public RedisTemplate<String, Student> customRedisTemplate(
            RedisConnectionFactory connectionFactory) {
        RedisTemplate<String, Student> rt = new RedisTemplate<>();
        // 实例化Jackson的序列化器
        Jackson2JsonRedisSerializer<Student> serializer
                = new Jackson2JsonRedisSerializer<Student>(Student.class);
        // 设置value值的序列化器为serializer
        rt.setValueSerializer(serializer);
        rt.setHashValueSerializer(serializer);
        // 设置key键的序列化器为serializer
        rt.setKeySerializer(new StringRedisSerializer());
        rt.setHashKeySerializer(new StringRedisSerializer());
        // 设置redis连接工厂(线程安全的)
        rt.setConnectionFactory(connectionFactory);
        return rt;
    }
}

测试自定义RedisTemplate的用例

@PostMapping("/add")
    public String add(@RequestBody Student student) {
        System.out.println(student);
        customRedisTemplate.opsForValue().set("key_" + student.getId(), student);
        return "add success";
    }

启动Spring Boot并通过Restlet测试:

【西瓜皮】Spring Boot 2.x 整合 Redis(一)

结果如下:

【西瓜皮】Spring Boot 2.x 整合 Redis(一)

到此,简单的整合Redis已经成功。接下来是cache注解。

原文 

https://segmentfault.com/a/1190000018528807

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 【西瓜皮】Spring Boot 2.x 整合 Redis(一)

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址