Spring Boot2.X使用Redis作为缓存组件

SpringBoot整合Redis作为缓存

此篇需要与前面整合默认缓存组件结合阅读(前面的缓存开启的注解等这里不再赘述)

SpringBoot的默认缓存使用

一、最简易方法

直接在pom文件中引入Redis的依赖:

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

在配置文件中设置redis的ip地址和端口号:

spring:
  redis:
    host: 192.168.37.100
    port: 6379

并且给要缓存的实体类实现Serializable接口,就可以初步使用Redis来存放缓存数据了。

因为SpringBoot默认使用SimpleCacheConfiguration作为默认配置,自动产生ConcurrentMapCacheManager作为CacheManager,而加入了redis的依赖后,CacheManager就变成了其Redis的的RedisCacheManager,所以无需进行过多的配置就可以简单地使用Redis作为缓存组件了。

但是这里有一个问题:存放的数据不是以json格式存放,难以阅读:

为了解决这一问题,那么就要使用下面的方法:

二、自定义RedisCacheManager

在配置类中使用@Bean注解向IOC容器中加入自定义的RedisCacheManager代替默认的,设置存放的规则,将对象数据转换成JSON格式,让对象在存入Redis时以JSON格式保存,更加清晰易读:

自定义的RedisCacheManager:

@Configuration
public class MyRedisConfiguration {

    @Bean
    RedisCacheManager cacheManager( RedisConnectionFactory redisConnectionFactory) {
        // 使用缓存的默认配置
        RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
        // 使用 GenericJackson2JsonRedisSerializer 作为序列化器
        config = config.serializeValuesWith(
                RedisSerializationContext.SerializationPair.fromSerializer(
                        new GenericJackson2JsonRedisSerializer()));
        RedisCacheManager.RedisCacheManagerBuilder builder =
                RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(config);

        return builder.build();
    }

}

这时候存放数据的时候可以发现Redis中对象按照JSON格式存储,并且读取缓存也没有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值