tgoop.com/teachify/4186
Last Update:
✔️ تا حالا فکر کردین #Redis چطور کلیدهای #cache که #TTL شون تموم شده رو پاک میکنه؟
در واقع Redis از ترکیب دو مکانیزم هوشمند برای این کار استفاده میکنه:
▪️مکانیزم Lazy Expiration (حذف تنبل)
ساده و سرراسته.
وقتی درخواستی برای یه کلید میاد، Redis اول چک میکنه که اون کلید هنوز معتبره یا نه.
اگه منقضی شده باشه، همونجا حذفش میکنه و مقدار null
برمیگردونه.
▪️مکانیزم Active Expiration (حذف فعال)
اما اگه یه کلید مدتها خونده نشه چی؟ اینجاست که Redis خودش دستبهکار میشه.
هر ~100ms یه بار، بهصورت تصادفی یه batch از کلیدها (مثلاً 20 تا) رو بررسی میکنه.
اگه بیشتر از 25٪ اونها اکسپایر شده باشن، Redis حدس میزنه تعداد زیادی از کلیدها منقضی شدن و فوراً یه batch دیگه رو هم بررسی میکنه.
این چرخه تا زمانی ادامه پیدا میکنه که اوضاع متعادل بشه.
در نتیجه، کلیدهای #cache دقیقاً همزمان با پایان TTL حذف نمیشن!
ممکنه برای مدتی توی حافظه باقی بمونن، مخصوصاً وقتی حجم کلیدها بالاست.
همچنین پارامترهای مربوط به تعداد کلیدهای بررسیشده در هر iteration و نرخ اجرای لوپ توی تنظیمات Redis قابل تغییرن.
@Teachify | برنامه نویسی
BY برنامه نویسی | Teachify

Share with your friend now:
tgoop.com/teachify/4186