目录
实现
RedisTemplate
RedisTemplate的序列化
RedisSerializer
创建Redis缓存配置类
测试使用
创建配置类
创建注解测试实体
创建配置文件
创建单元测试类进行测试
-
实现
-
RedisTemplate
- XXXTemplate 是 Spring 的一大设计特色,其中,RedisTemplate 功能是提供对 Redis 的支持
- RedisTemplate 是 Spring Boot 访问 Redis 的核心组件,是 SpringBoot 集成 Redis 的客户端方式
- 它的底层通过 RedisConnectionFactory 对多种 Redis 驱动进行集成,上层通过 XXXOperations 提供丰富的 API,并结合 Spring 基于泛型的 bean 注入,为开发提供了极大的便利
-
RedisTemplate的序列化
- 默认情况下,RedisTemplate使用的是JDK序列化
- StringRedisTemplate使用的String的序列化,可读性好,将k和v都作为String进行处理
- RedisTemplate把k和v经过了序列化存到了redis,k和v是序列化的内容,不能直接识别
- 因此为了提高可读性,可以自定义序列化形式
- 这里可设置key使用String序列化
- 打开redis服务,使用Postman传入数据
- 使用redis客户端查看数据,因此可看到String序列化的key以及未String序列化的value
- 同理可将key和value都设置为String形式的序列化
- 再次测试,redis客户端查看到的key和value均为String序列化的数据
-
RedisSerializer
- RedisTemplate中的几个角色:
- RedisSerializer:由于与Redis服务器的通信一定是使用字节数组完成的,所以RedisSerializer是将Java对象编码解码的组件
- RedisOperations:封装了一些Redis操作
- XXXOperations:封装了指定类型或功能的数据的操作,如ZSetOperations
- RedisSerializer提供了两个方法,一个用于序列化,一个用于反序列化
- 并且它提供了一个泛型T,代表该序列化器处理的类型
- 它的实现类有下面这些:
- 从实现类的名字可以看出,其中有将对象转换为json的,有使用JDK自带的序列化机制进行序列化反序列化的,有专门处理String的...
- 默认情况下,RedisTemplate使用JdkSerializationRedisSerializer,也就是JDK默认的序列化机制来进行序列化
- RedisTemplate的成员属性中有如下和序列化器相关的属性:
- 从这里可以看出,可以对RedisTemplate进行设置,在不同的情况下使用不同的序列化器
- 如在hash值的序列化上使用Jdk序列化器,而在普通的值上使用字符串序列化器
- 而RedisCacheManager 是 Spring Boot 提供的一个缓存管理器,它基于 Redis 缓存提供程序
- RedisCacheManager 允许将 Spring Boot 应用程序与 Redis 集成,从而提高应用程序的性能
- RedisCacheManager 实现了 Spring 的 CacheManager 接口,这意味着它可以与 Spring 的缓存抽象一起使用
- 可以使用 Spring 的 @Cacheable、@CachePut 和 @CacheEvict 注释来配置缓存策略,并使用 RedisCacheManager 来管理缓存
- RedisCacheManager 还提供了一组管理缓存的方法,例如 clear、evict 等
-
创建Redis缓存配置类
- 默认的RedisTemplate和RedisCacheManager使用JDK的序列化方式,可以自定义为string和json序列化
-
测试使用
-
创建配置类
-
创建注解测试实体
-
创建配置文件
-
创建单元测试类进行测试