کش چیست

کش چیست + الگوریتم‌های موثر [بهینه‌سازی سرعت در سال 2024]

آنچه در این مقاله میخوانیم

در دنیای دیجیتال امروز، سرعت و دسترسی سریع به اطلاعات نقشی کلیدی در بهبود تجربه کاربران دارد. هر لحظه‌ای که در جست‌وجوی اطلاعات سپری می‌کنیم، سرعت دسترسی به داده‌ها می‌تواند تجربه ما را به طرز چشمگیری تغییر دهد. اینجاست که “کش” (Cache) یا همان حافظه پنهان وارد عمل می‌شود و با ذخیره موقت داده‌ها ما را از دریافت دوباره‌ی اطلاعات مشابه بی‌نیاز می‌کند. با وجود کش، بارگذاری وب‌سایت‌ها، اجرای اپلیکیشن‌ها و دسترسی به داده‌ها با سرعت بیشتری انجام می‌شود.

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

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

 

کش (Cache) چیست؟

کش (Cache) چیست؟

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

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

کش معمولاً توسط مرورگرها، سیستم‌عامل‌ها (مثل ویندوز، لینوکس)، وب‌سرورها، اپلیکیشن‌ها و حتی شبکه‌های محتوا (CDN) استفاده می‌شود. نتیجه؟ وب‌سایت‌ها سریع‌تر باز می‌شوند، اپلیکیشن‌ها روان‌تر عمل می‌کنند و همه چیز انگار زودتر به دستتان می‌رسد. اما سؤال اینجاست که این کش دقیقاً چطور کار می‌کند؟

عملکرد کش چگونه است؟

عملکرد کش چگونه است؟

برای درک عملکرد، ابتدا به این سوال پرداختیم که حافظه کش چیست؟

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

داده‌ها البته همیشه در حافظه‌ی کش باقی نمی‌مانند؛ اینجاست که مفهوم TTL (مدت‌زمان ماندگاری) مطرح می‌شود. TTL مشخص می‌کند که هر داده تا چه زمانی در کش بماند و بعد از آن در صورت نیاز، دوباره به‌روز شود. شاید بپرسید چرا داده‌ها موقتاً ذخیره می‌شوند؟ دلیلش این است که اطلاعات ممکن است با گذر زمان قدیمی شوند و نیاز به آپدیت پیدا کنند؛ پس TTL این اطمینان را می‌دهد که همیشه به داده‌های جدید و به‌روز دسترسی دارید.

مراحل کشینگ داده‌ها

1. ایجاد و ارسال درخواست

اولین قدم با کاربر شروع می‌شود؛ وقتی کاربر فایل‌ها یا محتوای دلخواهش را درخواست می‌کند این درخواست از طریق کلاینت (مثل مرورگر یا اپلیکیشن) به حافظه کش ارسال می‌شود تا ببیند آیا اطلاعات در دسترس هست یا خیر. اگر کش داده‌های قبلی را ذخیره داشته باشد با سرعت بیشتری پاسخ می‌دهد که در سئو داخلی و سئو فنی وب‌سایت‌ها اهمیت بسیاری دارد.

2. بررسی حافظه کش

کلاینت ابتدا سراغ حافظه کش خودش می‌رود و به دنبال محتوای درخواستی می‌گردد تا شاید لازم نباشد به سرور مراجعه کند.

3. ارسال محتوا به کاربر (Cache Hit)

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

4. ارسال درخواست به سرور (Cache Miss)

اما اگر فایل‌های مورد نظر در کش موجود نباشند، در این صورت درخواست به سمت سرور اصلی فرستاده می‌شود تا از منبع اصلی داده‌ها بازیابی شوند. این حالت را «کش میس» می‌نامند.

5. دریافت فایل‌ها از سرور

 در این مرحله، سرور درخواست را پردازش کرده و فایل‌های درخواستی را به کلاینت می‌فرستد. چون داده‌ها باید از سرور اصلی ارسال شوند، ممکن است این کار نسبت به کش هیت زمان بیشتری بگیرد.

6. ذخیره‌سازی داده‌ها در کش

 بعد از دریافت داده‌ها، کلاینت یک نسخه از آن‌ها را در حافظه کش خود ذخیره می‌کند تا در آینده سریع‌تر به آن‌ها دسترسی داشته باشد.

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

بازاریابی محتوا چیست و چگونه کسب‌وکار شما را بهبود می‌دهد؟ همین حالا در مورد آن بیشتر بدانید.

انواع مختلف کشینگ

انواع مختلف کشینگ

تا اینجا آشنا شدیم که کش یعنی چه و در ادامه با مهم‌ترین انواع کشینگ که به‌طور گسترده استفاده می‌شوند، آشنا می‌شوید:

نوع کش
1. کش مرورگر
2. کش سمت سرور
3. کش CDN
4. کش DNS
5. کش CMS
6. کش وب‌سرور
7. کش پایگاه‌داده
8. کش سمت کلاینت
9. کش وب‌سایت
10. کش CPU

1. کش مرورگر

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

2. کش سمت سرور

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

3. کش CDN

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

4. کش DNS

 سیستم نام دامنه (DNS) آدرس‌های اینترنتی را به آدرس‌های IP تبدیل می‌کند که برای کامپیوترها قابل شناسایی است. وقتی یک آدرس وب را تایپ می‌کنید، مرورگر از طریق DNS آدرس IP مرتبط را پیدا می‌کند. سپس مرورگر این اطلاعات را در حافظه کش خود ذخیره می‌کند و اگر بعداً دوباره همان آدرس را جست‌وجو کنید، دیگر نیازی به درخواست مجدد از سرورهای DNS نیست.

5. کش CMS

 سیستم‌های مدیریت محتوا (CMS) مثل وردپرس و جوملا به کاربران امکان می‌دهند وب‌سایت‌های خود را بدون نیاز به دانش فنی بسازند. این سیستم‌ها ابزارهای کشینگ متنوعی دارند که سرعت وب‌سایت را برای بازدیدکنندگان افزایش می‌دهد. مثلاً افزونه‌هایی مثل WP Rocket و W3 Total Cache به وب‌سایت‌ها کمک می‌کنند تا اطلاعاتشان را بهینه‌تر ذخیره کنند. همچنین، سیستم‌های CMS و وب‌سرورها نیز از کشینگ برای بهبود سئو خارجی بهره می‌گیرند.

6. کش وب‌سرور

 وب‌سرورها مثل آپاچی و انجین‌ایکس وظیفه دارند درخواست‌های کاربران را پردازش کنند. آن‌ها می‌توانند فایل‌های پویا مثل جاوا اسکریپت را در کش خود ذخیره کنند تا هم سرعت بارگذاری افزایش یابد و هم فشار از روی سرورها کاهش پیدا کند.

7. کش پایگاه‌داده

پایگاه‌های داده مثل MySQL و PostgreSQL معمولاً دارای مکانیزم کشینگ هستند تا از ارسال کوئری‌های تکراری جلوگیری کنند. با ذخیره آخرین نتایج کوئری‌ها، داده‌ها سریع‌تر در اختیار کلاینت‌ها قرار می‌گیرند و سرعت دسترسی بالا می‌رود.

8. کش سمت کلاینت

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

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

برای سفارش تولید محتوا با کیفیت و تأثیرگذار، به ما اعتماد کنید تا مخاطبان خود را جذب کنید.

9. کش CPU

کش CPU یکی از انواع کش سخت‌افزاری است که بین حافظه RAM و پردازنده قرار می‌گیرد و به پردازنده کمک می‌کند تا سریع‌تر به داده‌ها دسترسی داشته باشد و دستورات برنامه‌ها را اجرا کند. این حافظه به سه سطح L1، L2 و L3 تقسیم می‌شود که هرکدام نقش خاص خود را در افزایش سرعت دارند.

کش L1

کش L1 سریع‌ترین و در عین حال کم‌ظرفیت‌ترین کش در CPU است، معمولاً بین ۱۶ تا ۱۲۸ کیلوبایت ظرفیت دارد و داخل هر هسته پردازنده قرار گرفته است. این کش شامل دو بخش است: یکی برای ذخیره‌ی دستورالعمل‌های برنامه‌ها که پردازنده باید اجرا کند و دیگری برای ذخیره‌ی داده‌هایی که پردازنده به آن‌ها نیاز دارد.

کش L2

کش L2 ظرفیت بیشتری نسبت به L1 دارد (بین چند تا ده‌ها مگابایت) و یا روی هر هسته پردازنده قرار گرفته یا به صورت جداگانه در پردازنده تعبیه می‌شود. سرعت آن از L1 پایین‌تر است اما همچنان سریع‌تر از حافظه RAM عمل می‌کند و به پردازنده کمک می‌کند تا داده‌ها را به سرعت به دست آورد.

کش L3

کش L3 برای پشتیبانی و افزایش کارایی کش‌های L1 و L2 طراحی شده است. ظرفیت آن بین ده‌ها تا صدها مگابایت می‌باشد و اگرچه سرعت آن کمتر از دو سطح دیگر است اما همچنان نقش مهمی در پردازش سریع‌تر داده‌ها دارد.

کش توزیعی

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

دیجیتال مارکتینگ چیست؟ با ما یاد بگیرید که چگونه در دنیای دیجیتال بهتر دیده شوید.

مزایای استفاده از کش

مزایای استفاده از کش

مزایای استفاده از کش
1. افزایش سرعت بارگذاری سایت‌ها و اپلیکیشن‌ها
2. بهبود عملکرد I/O و افزایش پاسخ‌دهی سیستم
3. کاهش تأخیر و بهینه‌سازی مصرف پهنای‌باند
4. کاهش فشار روی سرورها
5. دسترسی آفلاین و تجربه کاربری بهتر
6. صرفه‌جویی در منابع و کاهش هزینه‌های شبکه
7. افزایش پایداری و قابلیت اطمینان سرور

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

معایب استفاده از کش

معایب استفاده از کش

معایب استفاده از کش
1. احتمال بارگذاری داده‌های قدیمی و به‌روزرسانی‌نشده
2. ذخیره‌سازی موقت داده‌ها که به‌طور مداوم نیاز به تازه‌سازی دارد
3. مصرف منابع و اشغال فضای ذخیره‌سازی
4. امکان کند شدن عملکرد مرورگر در صورت افزایش بیش از حد داده‌ها
5. احتمال کاهش امنیت با نگهداری داده‌های حساس به‌صورت محلی

با وجود مزایای کشینگ، یکی از چالش‌های اصلی ممکن است به‌روزرسانی داده‌ها باشد. این مساله مشابه مشکلات احتمالی در خدمات سئو در مشهد است که با ایجاد داده‌های جدید باید مجدداً به‌روزرسانی شوند تا کارکرد بهینه داشته باشند.

به نقل از مدیروب:

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

کشینگ در کدام زمینه‌ها کاربرد دارد؟

کشینگ در کدام زمینه‌ها کاربرد دارد؟

  • وب‌سایت‌ها و اپلیکیشن‌ها
  • دستگاه‌های هوشمند و اینترنت اشیاء
  • سرویس‌های پخش ویدئو
  • خدمات بورس و بانکداری آنلاین
  • فروشگاه‌های آنلاین و بازی‌های اینترنتی
  • شبکه‌های اجتماعی
  • موتورهای جستجو
  • GPS و سیستم‌های مسیریابی
  • پلتفرم‌های آموزش مجازی
  • و موارد دیگر

سئو چیست و چرا اهمیت دارد؟ ما به شما کمک می‌کنیم تا مفهوم سئو را بهتر درک کنید و آن را به کار گیرید.

انواع الگوریتم‌های کشینگ

انواع الگوریتم‌های کشینگ

در کشینگ، الگوریتم‌های مختلفی به کار گرفته می‌شوند تا حافظه بهینه‌تر مدیریت شود و عملکرد سیستم بهبود یابد. هر الگوریتم براساس نوع و میزان استفاده از داده‌ها، روش‌های خاصی را برای نگهداری یا حذف داده‌ها در حافظه به کار می‌گیرد. در ادامه، با چهار الگوریتم پرکاربرد کشینگ آشنا می‌شوید:

1. الگوریتم LRU

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

2. الگوریتم LFU

الگوریتم LFU یا “کم استفاده‌شده‌ترین” داده‌هایی را که در یک بازه زمانی، کمتر از آن‌ها استفاده شده است، حذف می‌کند. این روش برای مواقعی مناسب است که بخواهیم داده‌هایی که کاربران به‌ندرت به آن‌ها مراجعه می‌کنند، حذف شوند تا فضا برای داده‌های جدید باز شود.

با خدمات طراحی سایت ما، حضوری قدرتمند و حرفه‌ای در دنیای آنلاین داشته باشید.

3. الگوریتم MRU

در مقابل LRU، الگوریتم MRU یا “بیشتر استفاده‌شده اخیر” قرار دارد. این الگوریتم داده‌هایی که به‌تازگی بیشتر استفاده شده‌اند را از حافظه پنهان پاک می‌کند. MRU در شرایطی که داده‌های قدیمی بیشتر مورد استفاده قرار می‌گیرند، کارایی بالاتری دارد.

4. الگوریتم FIFO

الگوریتم FIFO یا “اولین ورودی، اولین خروجی” به‌طور ساده بر اساس زمان ورود داده‌ها به حافظه عمل می‌کند. اگر حافظه کش پر شود، این الگوریتم اولین داده‌ای که وارد شده است را حذف می‌کند و به داده‌های جدید فضا می‌دهد.

اگر به دنبال طراحی سایت در مشهد با بهترین کیفیت و سرعت هستید، ما این خدمات را به شما ارائه می‌دهیم!

جمع بندی

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

سوالات متداول کش چیست

آیا کشینگ می‌تواند به رتبه‌بندی وب‌سایت کمک کند؟

بله، کشینگ با کاهش زمان بارگذاری صفحات به بهبود تجربه کاربری کمک می‌کند و چون سرعت سایت یکی از معیارهای رتبه‌بندی موتورهای جست‌وجو است، می‌تواند تأثیر مثبتی بر جایگاه سایت شما داشته باشد.

آیا پاک‌کردن حافظه کش مشکلی ایجاد می‌کند؟

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

آیا مرورگرها می‌توانند محتوای دینامیک را کش کنند؟

بله، مرورگرهای مدرن تا حدی می‌توانند محتوای دینامیک را هم در کش ذخیره کنند. البته کشینگ محتوای دینامیک کمی پیچیده‌تر از محتوای استاتیک است، چون این محتوا به طور مداوم با توجه به تعاملات لحظه‌ای کاربران تغییر می‌کند و نیازمند به‌روزرسانی‌های مکرر است.

آیا کشینگ در سطح سخت‌افزار انجام می‌شود یا نرم‌افزار؟

هر دو! کشینگ می‌تواند هم در سطح نرم‌افزار (مثل مرورگرها و اپلیکیشن‌ها) و هم در سطح سخت‌افزار (مثل حافظه‌های پنهان CPU) انجام شود و هرکدام با ذخیره داده‌ها به افزایش سرعت دسترسی کمک می‌کنند.

مهم‌ترین ابزارهای کشینگ کدام‌اند؟

ابزارهای کشینگ متنوعی برای بهینه‌سازی سرعت و کارایی سیستم‌ها وجود دارند. از جمله پرکاربردترین آن‌ها می‌توان به Varnish، Redis، Memcached Squid Proxy، LiteSpeed Cache و Apache mod_cache اشاره کرد که هرکدام ویژگی‌ها و کاربردهای مخصوص خود را دارند و در سیستم‌های مختلف به کار می‌روند.

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آنچه در این مقاله میخوانیم

ما هر روز کلی مطالب آموزشی جالب در اینستاگراممون منتشر می‌کنیم!