redis整合注意事项
- spring boot如果导入了redis,那么springboot的cacheable注解会默认使用redis来进行缓存,使用默认的RedisCacheManager来调用默认的RedisTemplate保存键值对,其使用的是jdk的序列化器。
- 如果想要将对象保存至redis,需要自己实现一个RedisTemplate,改变默认的序列化器为json序列化器即可。
1 |
|
- 保存不同的对象需要实现不同的RedisTemplate,如保存员工需要实现RedisTemplate<Object, Employee>,而保存部门则要实现一个RedisTemplate<Object, Department>。否则会产生可以保存对象,但是无法读取对象的异常。
- 对于不同的RedisTemplate都需要与一个RedisCacheManager绑定,将其传给RedisCacheManager即可,并要设置一个manager为默认的manager。
1 | //CacheManagerCustomizers可以来定制缓存的一些规则 |
- 然后在对应的缓存指定对应的cacheManager
1 | //抽取缓存的公共配置 |
1 |
|
- 也可以使用缓存管理器得到缓存,进行api调用,而不要springboot帮你进行缓存保存
1 | public Department getDeptById(Integer id){ |