TGViewer
کدهالیک | codehalic کدهالیک | codehalic @codehalics · 4.15K subscribers
Post #1049 1.05K
کدهالیک | codehalic تو یکی از مصاحبه‌هایی که اخیرا برای پوزیشن Software Engineer تو یه شرکت خیلی خوب داخلی داشتم، یه سوال جالب ازم پرسیدن که امروز می‌خوام راجع بهش باهاتون صحبت کنم. مصاحبه‌کننده اول پرسید آیا تا به حال از ردیس استفاده کردی؟ گفتم بله. پرسید برای چه کاری؟ جواب…
بچه‌ها بریم سراغ جواب اون سوال مصاحبه که قولش رو داده بودم. وقتی صحبت از استراتژی‌های کشینگ میشه، ما چند تا الگوی استاندارد داریم که بسته به سناریو و نیازمندی سیستم باید بهترینش رو انتخاب کنیم.

استراتژی اول: Cache Aside یا Lazy Loading

این رایج‌ترین مدلیه که تو پروژه‌ها می‌بینید. روند کار اینطوریه که اپلیکیشن شما اول برای گرفتن دیتا میره سراغ ردیس. اگه دیتا اونجا بود که سریع برمی‌گردونه. اما اگه نبود، میره از دیتابیس اصلی مثل اس کیو ال سرور رکورد رو می‌خونه، کش رو آپدیت می‌کنه و بعد جواب رو میده. مثال بارزش خوندن کاتالوگ محصولات یا اطلاعات پایه یه سیستمه که زیاد خونده میشن اما دیر به دیر تغییر می‌کنن.

استراتژی دوم: Write Through

تو این مدل وقتی کاربر یه دیتایی رو ثبت یا آپدیت می‌کنه، اپلیکیشن شما همزمان اون دیتا رو هم داخل دیتابیس و هم داخل کش می‌نویسه. مزیت بزرگش اینه که همیشه دیتای داخل کش کاملا با دیتابیس سینک هست و دیتای کهنه یا منقضی شده به کاربر نمیدید. عیبش اینه که عملیات رایت یه کوچولو کندتر میشه چون دیتا باید هر دو جا نوشته بشه. این روش برای دیتاهایی که هم زیاد خونده میشن و هم آپدیت بودنشون به شدت حیاتیه کاربرد داره.


استراتژی سوم: Write Behind یا Write Back

این الگو برای سیستم‌های با ترافیک بالا فوق‌العاده است. اینجا شما دیتای جدید رو فقط داخل ردیس می‌نویسید و بلافاصله به کاربر پاسخ موفقیت‌آمیز میدید تا معطل نشه. بعدا تو بک‌گراند یه سرویس یا ورکر میاد این دیتاها رو جمع می‌کنه و به صورت دسته‌ای می‌بره سمت دیتابیس اصلی ذخیره می‌کنه. بهترین مثالش سیستم‌های لایک یا شمارشگر بازدید ویدیو هست که حجم نوشتن توشون به شدت بالاست. البته ریسکش اینه که اگه نود ردیس قبل از سینک شدن با دیتابیس کرش کنه، ممکنه بخشی از دیتا از دست بره.

در نهایت تو پروژه‌های بزرگ و معماری‌های توزیع‌شده، ما معمولا فقط به یک روش بسنده نمی‌کنیم و ترکیبی از این استراتژی‌ها رو پیاده می‌کنیم. هنر شما به عنوان طراح سیستم اینه که بر اساس بار ترافیکی و نیاز بیزینس، الگوی درست رو برای هر بخش از پروژه انتخاب کنید.


رفرنس :

https://devscape.in/blog/caching-strategies

@codehalics | کدهالیک
  • ❤ 21
  • 👍 3
  • 🔥 2
  • 👏 1
More from @codehalics
  1. Oct 4, 2026این پروژه خیلی جالب بود یه نفر نرم افزار مدیریت انبار رو از یه کار خشک و تکراری به یه بازی…
  2. Oct 4, 2026سلام دوستان موسسه فرا رو آماده استخدام یک نیروی کارآموز حضوری در تهران برای پوزیشن فرانت ا…
  3. Oct 3, 2026امروز سرور کدهالیک یه مدت از دسترس خارج شد. بعد از پیگیری معلوم شد هیت‌سینک سرور مشکل داشت…
  4. Oct 3, 2026کارآموز .net اگر به دنیای نرم‌افزار علاقه دارید و برای یادگیری و حل مسئله کنجکاو و پرتلاش…
  5. Oct 3, 2026یه اصطلاح باحالی توش استفاده کرد بود به اسم«اقتصاد دمبلی» (Barbell Economy) مفهوم اقتصاد د…
  6. Oct 3, 2026تو این مقاله‌ای که خوندم نویسنده میگه هنوز برای ساختن یه کسب‌وکار از صفر تو عصر هوش مصنوعی…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →