缓存穿透预防及优化方案:git
1)缓存空对象github
2)布隆过滤器拦截 redis
利用 Redis 的 Bitmaps 实现布隆过滤器,GitHub 上已经开源了相似的方案,读者能够进行参考:算法
https://github.com/erikdubbelboer/Redis-Lua-scaling-bloom-filter后端
缓存雪崩问题优化缓存
1)保证缓存层服务高可用性。jvm
2)依赖隔离组件为后端限流并降级。优化
3)提早演练ui
缓存热点 key 重建优化spa
1)互斥锁 (mutex key) 只容许一个线程重建,防止重建致使db峰值
2)永远不过时 单独线程按期更新key 会存在数据不一致的状况
增长热点发现模块,经过统计key访问频次发现热点key,将热点key缓存到server端的jvm cache中,减小redis的热点数据访问压力,热点发现模块能够经过LFU算法保存必定数量的热点key被统计。
https://m.aliyun.com/yunqi/articles/404817?utm_content=m_41127
https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653548432&idx=1&sn=ac120e1ffca7c2007c0bc5df51e03d7b&chksm=813a7e08b64df71ec7b8b6afc2a36a8ff1d780db54a395b58a9f18f084080c09de514e999834&scene=0&key=4fff5d6bf50b33b332e93f05f04e721aac485af2f9ed18e1d4458b5c7e654e5f2fa2677d2bef6f000d2841c9edfcd4938afebc292a74749921047a1c0b2a8f7104f0fe4bd696e54fc3907cc7f6c75008&ascene=0&uin=Mjc5Nzc3MDE4MA%3D%3D&devicetype=iMac+MacBookPro12%2C1+OSX+OSX+10.12.2+build(16C67)&version=12020010&nettype=WIFI&fontScale=100&pass_ticket=k%2BcN5HCFGqDMp0oRFjvSAL55Ai964R3j%2BiNG00BA2AdES0LaDwp0DMKua9l4afpI