关于淘汰缓存还是更新缓存

一、读操作流程
1、先查询redis,如果redis有数据则直接返回redis数据
2、如果redis没有数据,则从数据库中读取数据
3、从数据库中读取数据后,更新reids缓存

二、写操作:淘汰缓存?Or更新缓存?

1、淘汰缓存:优点是操作简单,缺点是淘汰后下一次请求就会读取数据库

2、更新缓存:优点是不会出现下一次cache miss,缺点是代价比比较大
3、结论:淘汰缓存作为通用方案

三、写操作:先淘汰缓存?0r先更新数据库?

1、先更新数据库:如果更新数据库后还没来得及淘汰缓存服务就挂掉了。那么就会出现脏数据。

2、先淘汰缓存:如果淘汰缓存后更新数据库之前的这段时间有其他读请求发送过来,就会把老的数据读到redis缓存中。

3、结论:先淘汰缓存,可利用延迟双删策略弥补缺陷。

 

四、什么是延迟双删

1、先删除缓存
2、再写数据库
3、休眠500毫秒(根据具体的业务时间来定)
4、再次删除缓存。

 

posted @ 2023-06-21 07:36  快乐的汤圆酱  阅读(18)  评论(0编辑  收藏  举报