فرض کنید یک Query پرمصرف را ۵ دقیقه Cache کردهایم.
Cache Expire میشود و همان لحظه ۱۰۰۰ Request میرسد.
اگر همه ببینند Cache خالی است:
1000 Requests → Databaseاین مشکل را Cache Stampede مینامند.
یکی از Patternهای کاربردی، Request Coalescing یا Single Flight است:
اولین Request داده را Refresh میکند و بقیه منتظر همان نتیجه میمانند.
1000 Requests → 1 DB Query → Cache → 1000 Responsesراهکارهای دیگر:
TTL Jitter Stale-While-Revalidate Distributed Lock📌 در Cache Strategy فقط انتخاب TTL نیست؛ باید رفتار سیستم هنگام Cache Miss همزمان را هم طراحی کنیم.
کانال آموزشی کدنایت | آموزش برنامه نویسی
https://t.me/codenight_ir