Продвинутый
Что такое Cache Penetration (Пробитие кэша) и как с ним бороться?
Cache Penetration — это атака или баг, при котором запрашиваются данные, которых нет ни в кэше, ни в БД (например, GET /users/-999).
Проблема: Кэш не находит ключ -> запрос идет в БД -> БД не находит -> в кэш ничего не пишется. Хакер шлет миллион таких запросов, и все они бьют напрямую в БД, минуя кэш.
✅ Решения:
1. Кэшировать пустые ответы: Если БД вернула null, записать в Redis ключ -999 со значением null и коротким TTL (5 минут).
2. Фильтр Блума (Bloom Filter): Вероятностная структура данных перед кэшем, которая мгновенно отвечает: "Такого ID точно не существует", отсекая запрос.