双写一致性
学了redis,首页轮播图接口--->来一个访问首页,就会去mysql查询一次,假设并发量很高,一万个人访问首页,轮播图接口就会被查1w次,有1w的的mysql查询
在轮播图接口中,在返回给前端之前,把轮播图接口的数据,在redis中放一份
以后,用户访问轮播图接口,先去redis中取,如果有直接返回,如果没有,取mysql取出来,放到redis中,再返回
接口加缓存后,效率高了,但是存在问题
-mysql和redis数据不一致的问题
-出现了双写一致性问题
解决双写一致性问题
1. 先更新数据库,再更新缓存
2. 先删除缓存,再更新数据库
3. 先更新数据库,再删除缓存 (这种比较多)
4. 定时更新缓存 (每隔5分钟更新一次缓存)---》celery的定时任务