عملیات Cache کردن یک Query ساده است.
مشکل واقعی زمانی شروع میشود که داده تغییر کند.
فرض کنید:
Product → price = 500این مقدار Cache شده.
حالا قیمت در Database میشود:
700اما Cache هنوز
500 را برمیگرداند.اینجاست که مسئله اصلی Cache مطرح میشود:
Cache Invalidation
چه زمانی Cache را حذف کنیم؟
چه زمانی Update کنیم؟
مقدار TTL چقدر باشد؟
اگر چند Server داشته باشیم چه؟
اگر دو Request همزمان Cache را تغییر دهند چه؟
به همین دلیل:
عمل Cache کردن مشکل Performance را حل میکند؛ اما Cache Invalidation یک مسئله معماری است.
و همان جمله معروف هنوز پابرجاست:
There are only two hard things in Computer Science: cache invalidation and naming things.
@CodeVerse_dev