
缓存和数据库会有双写
会有一个时间差不一样
Cahce Aside Pattern
第一种情况:第一次查语句id=1 -› redis(无) -› mysql(有) -耗时600ms‹---返回-------------------- redis(有) -------------第一种情况:第n次查语句id=1 -› redis(有) ---耗时2ms‹---返回--------------------------------更新 -› 先更新mysql数据库数据 -› 后删除redis缓存数据 ---------------运用了lazy计算思想,就是用才算出来
只可以:先更新mysql数据库数据 -› 后删除redis缓存数据
不可以:先删除redis缓存数据 -› 后更新mysql数据库数据,否则:
更新 -› 先更新mysql数据库数据 -› 后删除redis缓存数据(失败了)数据会出现不一致更新 -› 先删除redis缓存数据 -› 后更新mysql数据库数据(失败了)数据不会出现不一致更新-› 1、先删除redis缓存数据-----------------------› !突然有一个请求过来!(1、查redis查不到)-----------------------› !突然有一个请求过来!(2、查mysql旧数据)-----------------------› !突然有一个请求过来!(3、写redis旧)-› 2、后更新mysql数据库数据炸了,后面的查都查旧数据