整合redis
在docker中安装redis(下载可以去docker中国,docker的官网在国外,所以下载比较慢)
运行redis
连接redis
springboot官网中找到redis启动jar包
进入到项目中
配置redis:
当我们引入了redis相关starter包之后,它的自动配置文件就起作用了
它的两个主要方法RedisTemplate和stringRedisTemplate
测试redis的使用
要保存对象,必须序列号对象
序列化保存之后
可以看到这种存放方式不易于阅读
在redis中默认使用的是JdkSerializationRedisSerializer
所以我们需要将其转换成json的序列化器
创建MyRedisConfig
从源码中赋值过来
自动注入
测试
总结:
引入redis的starter,容器中保存的是RedisCacheManager,其他的缓存,如simpleCacheManager就不会被创建
RedisCacheManager帮我们创建rediscache来作为缓存组件;rediscache通过操作redis来缓存数据
而且redis保存数据的时候,默认采用序列化的方式保存数据的。
所以为了能够使得所有的缓存保存能够更加直观,传入自定义的RedisTemplate
对于注解缓存操作使用方式和之前一模一样
为保存到redis的key添加前缀
查询另外一张表
查询
再次查,缓存就出问题了
原因在于我们之前写的序列化是面向employee的,而现在我们需要面向的是department
在写一个department序列化
现在需要指定相关序列化器(缓存管理器)
也可以在方法上指定
由于存在多个缓存管理器,这个时候就需要设置一个默认的