You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
举个栗子。数据库 id 是从 1 开始的,结果黑客发过来的请求 id 全部都是负数。这样的话,缓存中不会有,请求每次都“视缓存于无物”,直接查询数据库。这种恶意攻击场景的缓存穿透就会直接把数据库给打死。
解决方式很简单,每次系统 A 从数据库中只要没查到,就写一个空值到缓存里去,比如 set -999 UNKNOWN。这样的话,下次便能走缓存了。
感觉这样并没有解决缓存穿透的问题,黑客只需要把每次请求id设置为不一样的负数就可以了
The text was updated successfully, but these errors were encountered:
缓存雪崩的问题:
redis 重启后从磁盘上加载的数据应该都是过期的数据了吧?和数据库不一致了。
缓存穿透的问题:
感觉这样并没有解决缓存穿透的问题,黑客只需要把每次请求id设置为不一样的负数就可以了
The text was updated successfully, but these errors were encountered: