گائیڈز

Caching کیا ہے؟ ایپ بنانے والوں کے لیے سادہ رہنما

Caching کا مطلب ہے کسی ایسی چیز کی تیار نقل رکھنا جسے حاصل کرنا سست یا مہنگا تھا، تاکہ اس کی اگلی درخواست کا جواب اس نقل سے تیزی سے دیا جا سکے۔ محفوظ شدہ نقل کو cache کہتے ہیں۔ آپ کا براؤزر تصاویر کیش کرتا ہے تاکہ آپ کی دوسری بار کی وزٹ پر سائٹ تیزی سے کھلے؛ سرور کسی سست ڈیٹابیس کوئری کا نتیجہ کیش کرتا ہے تاکہ ہر زائر کے لیے اسے دوبارہ نہ چلانا پڑے۔

Caching ایپس کو تیز اور چلانے میں سستا بناتی ہے۔ اس کا ایک بڑا تبادلہ یہ ہے کہ نقل پرانی ہو سکتی ہے۔

AI سے بنانے میں caching کیوں اہم ہے

AI سے بنی ایپس میں caching سے تین طرح واسطہ پڑتا ہے:

  • “میں نے ایپ اپ ڈیٹ کی مگر مجھے ابھی بھی پرانا ورژن نظر آ رہا ہے۔” یہ سب سے عام caching کا لمحہ ہے، اور عموماً نقصان دہ نہیں ہوتا: آپ کا براؤزر یا CDN محفوظ شدہ نقل دکھا رہا ہوتا ہے۔
  • رفتار۔ اگر کوئی صفحہ اس لیے سست ہے کہ وہ ہر زائر کے لیے وہی حساب دوبارہ کرتا ہے، تو نتیجہ کیش کرنے سے وہ فوری محسوس ہو سکتا ہے۔
  • لاگت۔ بہت سے AI بلڈرز اور ہوسٹس کمپیوٹ، ڈیٹابیس وقت اور بیرونی API کالز کا معاوضہ لیتے ہیں۔ اگر ہزار زائرین ایک ہی مہنگی درخواست چلائیں، تو caching سے آپ اسے صرف ایک بار ادا کرتے ہیں۔

بنیادی باتیں جاننے سے آپ جہاں مدد ملے وہاں caching مانگ سکتے ہیں اور جب یہی کسی چیز کے غلط نظر آنے کی وجہ ہو تو اسے پہچان سکتے ہیں۔

روزمرہ کی ایک مثال

ایک مصروف کیفے کے باورچی خانے کا تصور کریں۔

ہر صبح باورچی ہر کافی کو آرڈر پر تازہ پیسے ہوئے دانوں سے بنا سکتا ہے۔ یہ سست ہے۔ اس کے بجائے وہ گرم پلیٹ پر فلٹر کافی کا ایک برتن تیار رکھتا ہے۔ زیادہ تر گاہکوں کو چند سیکنڈ میں کپ مل جاتا ہے، یہ cache hit ہے۔ جب برتن خالی ہو جائے تو کوئی تازہ بناتا ہے، یہ cache miss ہے۔

مگر زیادہ دیر رکھی کافی باسی ہو جاتی ہے، اس لیے کیفے کا اصول ہے کہ تیس منٹ سے پرانا برتن پھینک دیا جائے۔ یہ اصول cache کا expiry time ہے۔ کوئی بھی دن بھر ایک ہی برتن نہیں رکھتا، اور کسی کا خاص آرڈر، جیسے oat milk اور تین چمچ چینی والا، پہلے سے نہیں بنایا جاتا؛ کچھ چیزیں کیش ہی نہیں ہونی چاہئیں۔

Caches کہاں رہتے ہیں

ایک صفحہ لوڈ ہونے کے دوران کئی caches سے گزر سکتا ہے، صارف کے قریب ترین سے دور ترین تک:

Cacheکہاں ہےعموماً کیا محفوظ ہوتا ہےمثال
Browser cacheزائر کے آلے پرتصاویر، stylesheets، scripts، فونٹسدوسرے صفحے پر آپ کا لوگو فوری لوڈ ہوتا ہے
CDN cacheدنیا بھر میں سرورز، زائرین کے قریبجامد فائلیں اور کبھی کبھار پورے صفحاتٹوکیو کا زائر فائلیں قریبی سرور سے لیتا ہے، آپ کے اصل سرور سے نہیں
Application cacheآپ کے سرور پر یا اس کے قریب، اکثر memory یا Redis میںسست کوئریز یا بیرونی API کالز کے نتائجآج کی شرحِ مبادلہ، ایک بار ہر گھنٹے حاصل کی گئی
Database cacheڈیٹابیس کے اندرحال ہی میں استعمال ہونے والا ڈیٹا اور کوئری پلانزمقبول قطاریں تیز memory میں رہتی ہیں

CDN (content delivery network) بنیادی طور پر آپ کی سائٹ کی فائلوں کے لیے دنیا بھر میں caches کا نیٹ ورک ہے۔

cache کیسے طے کرتا ہے کہ کیا رکھنا ہے

ہر cache کو انہی سوالوں کا جواب دینا ہوتا ہے:

  • کیا کیش ہو سکتا ہے؟ عوامی، مشترکہ ڈیٹا (کسی پروڈکٹ کی تصویر، بلاگ پوسٹ) — ہاں۔ نجی ڈیٹا (صارف کا اکاؤنٹ صفحہ، اس کے پیغامات) — کسی مشترکہ cache میں کبھی نہیں۔
  • کتنی دیر کے لیے؟ یہ TTL (time to live) ہے۔ لوگو ایک سال کے لیے کیش ہو سکتا ہے؛ اسٹاک کی سطح 30 سیکنڈ کے لیے۔
  • یہ کیسے اپ ڈیٹ ہوتا ہے؟ یا تو نقل کی میعاد ختم ہو اور دوبارہ حاصل کی جائے، یا ڈیٹا بدلنے پر ایپ جان بوجھ کر اسے ہٹا دے، جسے invalidation کہا جاتا ہے۔

ویب سائٹس کے لیے سرور براؤزرز اور CDNs کو Cache-Control ہیڈر کے ذریعے بتاتا ہے کہ ہر فائل کیسے کیش کرنی ہے۔ مثلاً Cache-Control: max-age=3600 کا مطلب ہے “اس نقل کو ایک گھنٹے تک دوبارہ استعمال کیا جا سکتا ہے۔”

جدید بلڈ ٹولز جامد فائلوں کا سب سے مشکل حصہ cache busting سے سنبھالتے ہیں: جب بھی کوئی فائل بدلتی ہے، اسے فنگر پرنٹ کے ساتھ نیا نام ملتا ہے، جیسے app.3f9a2c.js۔ براؤزرز پرانا نام لمبے عرصے تک کیش کر سکتے ہیں، کیونکہ نئے ورژن کا نام ہی مختلف ہے۔

ایک عملی مثال: ایک پروڈکٹ کیٹلاگ

آپ کے پاس ایک چھوٹی آن لائن دکان ہے۔ ہوم پیج ڈیٹابیس سے 50 پروڈکٹس، قیمتیں اور اسٹاک کی سطح دکھاتا ہے، اور ایک “trending” فہرست جس کے لیے تمام آرڈرز پر ایک سست حساب درکار ہے۔

  1. تصاویر اور scripts براؤزر اور CDN کے ذریعے لمبے عرصے تک کیش ہوتے ہیں۔ ہر نئے build میں بدلی ہوئی فائلوں کو نئے نام ملتے ہیں، اس لیے اپ ڈیٹس پھر بھی ظاہر ہوتے ہیں۔
  2. Trending فہرست ہر 10 منٹ میں ایک بار حساب ہوتی ہے اور application cache میں محفوظ ہوتی ہے۔ ان 10 منٹوں میں ہر زائر کو محفوظ نتیجہ فوری ملتا ہے۔
  3. قیمتیں تھوڑی دیر کے لیے کیش ہوتی ہیں، اور جب بھی آپ کوئی پروڈکٹ بدلتے ہیں تو cache صاف ہو جاتا ہے، تاکہ گاہکوں کو کبھی زیادہ دیر پرانی قیمت نظر نہ آئے۔
  4. چیک آؤٹ پر اسٹاک کبھی کیش نہیں ہوتا۔ جب کوئی “Buy” دباتا ہے، ایپ اصل ڈیٹابیس چیک کرتی ہے، تاکہ وہ کوئی ایسی چیز نہ بیچ دے جو ابھی ختم ہوئی ہو۔
  5. کارٹ اور اکاؤنٹ کے صفحات مشترکہ caches میں کبھی محفوظ نہیں ہوتے، کیونکہ وہ ذاتی ہیں۔

نتیجہ: ہوم پیج تیز ہے، ڈیٹابیس کا کام بہت کم ہے، اور جو چیزیں پیسے یا رازداری کے لیے اہم ہیں وہ کبھی پرانی نہیں ہوتیں۔

اہم اصطلاحات

اصطلاحمطلب
Cache hit / missڈیٹا cache میں ملا / ماخذ سے حاصل کرنا پڑا۔
TTL (time to live)کیش شدہ نقل کتنی دیر تک تازہ سمجھی جاتی ہے۔
Stale dataکیش شدہ نقل جو پرانی ہو چکی ہو۔
Invalidationاصل ڈیٹا بدلنے کی وجہ سے کیش شدہ نقل جان بوجھ کر ہٹانا۔
Cache bustingفائل بدلنے پر اس کا نام یا URL بدلنا تاکہ caches نیا ورژن لیں۔
Cache-Controlوہ HTTP ہیڈر جو براؤزرز اور CDNs کو بتاتا ہے کہ جواب کیسے کیش کرنا ہے۔
Hard refreshصفحہ دوبارہ لوڈ کرتے وقت براؤزر کو اس کا کیش نظر انداز کرنے کو کہنا۔
Redisایک مقبول in-memory ڈیٹا اسٹور، جو اکثر application cache کے طور پر استعمال ہوتا ہے۔

عام غلط فہمیاں

  • “Caching ہمیشہ اچھی ہے۔” غلط چیز کیش کرنے سے حقیقی بگز آتے ہیں: پرانی قیمتیں، نئی پوسٹس کا غائب ہونا، یا بدترین صورت میں ایک صارف کا نجی صفحہ دوسرے کو دکھ جانا۔ جان بوجھ کر کیش کریں۔
  • “اگر پرانا ورژن دکھ رہا ہے تو میری اپ ڈیٹ ناکام ہو گئی۔” عموماً ایسا نہیں ہوتا۔ کچھ ٹوٹا ہوا سمجھنے سے پہلے hard refresh (Ctrl+Shift+R، یا Mac پر Cmd+Shift+R) یا پرائیویٹ ونڈو آزمائیں۔
  • “Caching سست ایپ کو ٹھیک کر دیتی ہے۔” یہ بار بار کی درخواستوں کی سستی کو چھپاتی ہے۔ پہلی درخواست پھر بھی سست ہوتی ہے، اور اگر اصل مسئلہ ڈیٹابیس انڈیکس کی کمی ہے تو اسے بھی ٹھیک کریں۔
  • “جتنا ہو سکے لمبے عرصے تک ہر چیز کیش کرنی چاہیے۔” لمبے کیش اوقات ان فائلوں کے لیے موزوں ہیں جن کے بدلنے پر نئے نام ملتے ہیں۔ HTML صفحات اور ڈیٹا کے لیے چھوٹے اوقات زیادہ محفوظ ہیں۔
  • “میرا کیش صاف کرنے سے سب کے لیے ٹھیک ہو جائے گا۔” یہ صرف آپ کا براؤزر صاف کرتا ہے۔ زائرین اور CDN caches کی اپنی نقلیں باقی رہتی ہیں۔

اپنے AI بلڈر سے کیا پوچھیں

  • “اس ایپ کے کون سے حصے سست ہیں، اور کون سے محفوظ طریقے سے کیش ہو سکتے ہیں؟”
  • “[trending فہرست / API کا نتیجہ] کو [N] منٹ کے لیے کیش کرو، اور جب بنیادی ڈیٹا بدلے تو اسے صاف کرو۔”
  • “یقینی بناؤ کہ ذاتی یا اکاؤنٹ ڈیٹا والا کوئی صفحہ CDN یا مشترکہ cache کے ذریعے کیش نہ ہو سکے۔”
  • “دستخط شدہ جامد فائلوں کے لیے لمبے کیش اوقات رکھو، اور HTML کے لیے چھوٹے۔”
  • “[بیرونی API] کے جوابات کیش کرو تاکہ ہر صفحہ لوڈ پر اسے کال نہ کرنا پڑے، اور بتاؤ کہ یہ ڈیٹا کتنا پرانا ہو سکتا ہے۔”
  • “شائع کرنے کے بعد مجھے پرانا ورژن نظر آ رہا ہے۔ کیا یہ میرے براؤزر کا کیش ہے، یا کوئی چیز deploy نہیں ہوئی؟”

Mythex میں Caching

Mythex ایپ پر اپ ڈیٹ شائع کرنے کے بعد docs بتاتے ہیں کہ CDN caches تھوڑی دیر پیچھے رہ سکتے ہیں، اور عوامی URL کا hard refresh نیا ورژن دکھاتا ہے، دیکھیں شائع کیسے کریں۔ Hosting limits صفحہ جامد assets کو کیش کرنے کی بھی سفارش کرتا ہے، کیونکہ ہوسٹنگ، ڈیٹابیس وقت اور bandwidth آپ کے کریڈٹ بیلنس سے ادا ہوتے ہیں۔ اس سے آگے، جیسے کوئری کے نتائج یا API کے جوابات کیش کرنا، وہ چیز ہے جسے آپ ایجنٹ سے اپنی ایپ میں بنوانے کو کہتے ہیں۔

متعلقہ مطالعہ: CDN کیا ہے، اپنی ویب سائٹ کو تیز کیسے بنائیں اور rate limiting کیا ہے۔

سوالات

سادہ الفاظ میں caching کیا ہے؟

Caching کا مطلب ہے کسی ایسی چیز کی نقل محفوظ کرنا جسے حاصل کرنا سست یا مہنگا تھا، تاکہ اگلی بار جب وہ درکار ہو تو محفوظ نقل سے تیزی سے دی جا سکے۔ براؤزرز، CDNs، سرورز اور ڈیٹابیسز سب ایپس کو تیز اور چلانے میں سستا بنانے کے لیے caches استعمال کرتے ہیں۔

ویب سائٹ اپ ڈیٹ کرنے کے بعد مجھے پرانا ورژن کیوں نظر آتا ہے؟

شاید آپ کا براؤزر یا CDN فائلوں کی پرانی محفوظ نقل دکھا رہا ہے۔ Hard refresh (ونڈوز پر Ctrl+Shift+R، Mac پر Cmd+Shift+R) عموماً اسے ٹھیک کر دیتا ہے۔ زائرین کے لیے، اچھی طرح بنی ہوئی سائٹس اپ ڈیٹ شدہ فائلوں کو نئے نام دیتی ہیں تاکہ caches خود نیا ورژن لے لیں۔

کیش صاف کرنے سے کیا ہوتا ہے؟

براؤزر کیش صاف کرنے سے فائلوں اور صفحات کی محفوظ نقلیں حذف ہو جاتی ہیں، تاکہ اگلی بار سب کچھ نئے سرے سے ڈاؤن لوڈ ہو۔ اس سے وہ صفحات ٹھیک ہو سکتے ہیں جو ٹوٹے یا پرانے نظر آ رہے ہوں، البتہ پہلی بار بعد میں صفحات تھوڑے سست کھلیں گے۔

کیا caching مسائل پیدا کر سکتی ہے؟

ہاں۔ اصل خطرہ پرانا ڈیٹا دکھانا ہے، جیسے پرانی قیمت یا پرانا اسٹاک، یا اس سے بھی بدتر، کسی ایک صارف کا نجی صفحہ دوسرے کو دکھا دینا۔ اچھے caching اصول طے کرتے ہیں کہ کیا محفوظ ہو سکتا ہے، کتنی دیر کے لیے، اور ذاتی ڈیٹا کو مشترکہ caches میں کبھی نہیں رکھا جاتا۔

Mythex · Pricing · AI کے ساتھ کچھ بھی بنائیں · ویب سائٹ اور ایپ ٹیمپلیٹس · Mythex کا موازنہ · AI سے ایپ بنانے کی اصطلاحات · AI سے ایپ بنانے کے مفت ٹولز · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)