如何建立网站,网站的登录注册页面怎么做的,个人业务网站创建,初学网站开发redis是一款常用的非关系型数据库#xff0c;我们常用与作为数据缓存的组件。 接下来介绍一下面试中常被问到的三个概念以及简单的解决方法。
穿透
什么叫缓存穿透 缓冲穿透#xff0c;是当有一个请求过来时#xff0c;查询redis缓存不存在#xff0c;又去查询数据库我们常用与作为数据缓存的组件。 接下来介绍一下面试中常被问到的三个概念以及简单的解决方法。
穿透
什么叫缓存穿透 缓冲穿透是当有一个请求过来时查询redis缓存不存在又去查询数据库如MySQL。数据库中也不存在这个数据因为不存在该数据所以不会对其做缓存所以当下一个请求继续查询这个数据的时候请求还是会打到数据库这种情况就叫做缓冲穿透。
解决方法
最简单的解决方法就是对数据库查询时查不到的数据也做缓存可以缓存空对象。使用布隆过滤器预先判断数据是否存在如果布隆过滤器返回不存在那么可以确定数据一定不存在直接返回错误信息无需查询缓存和数据库。
击穿
什么是缓冲击穿 就是一个热点数据比如秒杀的一个数据短时间会有大量的请求过来。如果这个数据缓存中没有已过期或者被删除那么短时间瞬时来了大量的请求当第一个请求打到数据库但是还没有做好数据的缓存第2、3、4、…一堆请求都过来了请求都会一并打到数据库。
解决方法
设置合理的过期时间已经每次访问后更新过期时间预热缓冲使用分布式锁
雪崩
什么是雪崩 雪崩和击穿类似击穿是一个热点数据雪崩是同一时间大量缓冲过期导致请求直接打到数据库。
解决方法
合理设计过期时间使过期时间均布或随机使用分布式锁