缓存
缓存不一致
1、基本使用方式
data = queryDataRedis(key);
if (data ==null) {
# 缓存查询不到,从MySQL做查询
data = queryDataMySQL(key);
if (data!=null) {
# 查询完数据后更新MySQL最新数据到Redis
updateRedis(key, data);
}
}
上面这个读取数据的逻辑基本没什么问题,关键是写入时候的处理方式
一般有以下几种做法:
- 更新数据库后更新缓存
- 更新数据库前更新缓存
- 更新数据库后删除缓存
- 更新数据库前删除缓存