老板真爱画大饼!
小林coding
共 4160字,需浏览 9分钟
·
2021-09-14 15:49
一天,老板说「最近公司的用户越来越多了,但是服务器的访问速度越来越差的,阿旺帮我优化下,做好了给你画个饼!」。
先更新数据库,再更新缓存;
先更新缓存,再更新数据库;
先更新数据库,再更新缓存
先更新缓存,再更新数据库
更新数据库中的数据;
删除缓存中的数据。
如果读取的数据命中了缓存,则直接返回数据;
如果读取的数据没有命中缓存,则从数据库中读取数据,然后将数据写入到缓存,并且返回给用户。
先删除缓存,再更新数据库;
先更新数据库,再删除缓存。
先删除缓存,再更新数据库
先更新数据库,再删除缓存
别问为什么,故事还要分上下回,因为小林昨晚熬夜写,没写完,就先放上回的故事,哈哈哈。
在更新缓存前先加个分布式锁,保证同一时间只运行一个请求更新缓存,就会不会产生并发问题了,当然引入了锁后,对于写入的性能就会带来影响。
在更新完缓存时,给缓存加上较短的过期时间,这样即时出现缓存不一致的情况,缓存的数据也会很快过期,对业务还是能接受的。
#删除缓存
redis.delKey(X)
#更新数据库
db.update(X)
#睡眠
Thread.sleep(N)
#再删除缓存
redis.delKey(X)
推荐阅读
龟速更新中。。。。
评论