试题
考点

java语言-中间件-redis

面5笔5

什么是redis穿透?

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

就是用户请求透过redis去请求mysql服务器,导致mysql压力过载。但一个web服务里,极容易出现瓶颈的就是mysql,所以才让redis去分担mysql 的压力,所以这种问题是万万要避免的

解决方法:

1、从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30秒(设置太长会导致正常情况也没法使用)。这样可以防止攻击用户反复用同一个id暴力攻击

2、接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;

3、采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对底层存储系统的查询压力

评论
暂无评论

加载更多