Гарын авлагууд

Caching гэж юу вэ? Апп бүтээгчдэд зориулсан энгийн тайлбар

Caching гэдэг нь авахад удаан эсвэл үнэтэй байсан зүйлийн бэлэн хуулбарыг хадгалах бөгөөд түүнд дахин хандах дараагийн хүсэлтийг тэр хуулбараас хурдан хариулахыг хэлнэ. Хадгалсан хуулбарыг cache гэдэг. Таны браузер зургуудыг cache хийдэг тул сайт хоёр дахь удаагийн зочлолтод хурдан ачаалагддаг; сервер удаан өгөгдлийн сангийн лавлагааны үр дүнг cache хийдэг тул зочин бүрт дахин ажиллуулах шаардлагагүй.

Caching аппыг хурдан, ажиллуулахад хямд болгодог. Түүний гол trade-off нь хуулбар хуучрах боломжтой байдаг.

AI-аар бүтээхэд caching яагаад чухал вэ

AI-аар бүтээсэн аппд caching-тай дараах гурван аргаар тулгардаг:

  • «Би аппаа шинэчилсэн ч хуучин хувилбарыг хараад байна.» Энэ бол хамгийн түгээмэл caching-ийн тохиолдол бөгөөд ихэвчлэн санаа зовох зүйлгүй — таны браузер эсвэл CDN хадгалсан хуулбарыг харуулж байна.
  • Хурд. Хуудас зочин бүрт ижил тооцоолол дахин хийдэг учраас удаан бол үр дүнг cache хийх нь үүнийг агшин зуурын мэт болгож чадна.
  • Зардал. Олон AI builder болон hosting үйлчилгээ compute, өгөгдлийн сангийн цаг, гадаад API дуудлагад төлбөр авдаг. Мянган зочин ижил үнэтэй хүсэлтийг өдөөвөл caching нь үүнийг нэг удаа төлөхийг зөвшөөрнө.

Үндсэн зүйлийг мэдэх нь caching хаана тустайг хүсэж, юу буруу харагдаж байгаагийн шалтгааныг олж харахад тусална.

Өдөр тутмын жишээ

Эрэлттэй кафены гал тогоог бодоорой.

Өглөө бүр тогоочид захиалга бүрт шинэ нунтаглсан шарсан буурцгаар кофе чанах боломжтой. Энэ нь удаан. Харин тэр халуун тавцан дээр бэлэн шүүсэн кофены сав бэлдэж тавьдаг. Ихэнх харилцагчид секундын дотор аяга авдаг — энэ бол cache hit. Сав дуусахад хэн нэгэн шинэ кофе чанадаг — энэ бол cache miss.

Гэвч удаан зогссон кофе хуучирдаг тул кафены дүрэм байдаг: 30 минутаас хуучирсан савыг хаядаг. Энэ дүрэм бол cache-ийн хугацаа дуусах хугацаа. Хэн ч өдөржин нэг савыг хадгалахгүй, мөн хэн ч хүний захиалсан сүү, гурван элсэн чихэртэй кофег урьдчилан чанахгүй — зарим зүйлийг огт cache хийх ёсгүй.

Cache хаана байдаг вэ

Нэг хуудас ачаалахад хэрэглэгчээс хамгийн ойрхоноос хамгийн холоо хүртэл хэд хэдэн cache-ээр дамжиж болно:

CacheХаана байдагИхэвчлэн юу хадгалдагЖишээ
Браузерийн cacheЗочны төхөөрөмж дээрЗураг, stylesheet, script, фонтТаны лого хоёр дахь хуудсанд агшин зуур ачаалагдана
CDN cacheДэлхий даяар, зочдод ойр серверСтатик файл, заримдаа бүхэл хуудасТокиогийн зочин таны эх сервэрээс биш ойрын серверээс файл авна
Аппликейшний cacheСерверийн дээр эсвэл ойрхон, ихэвчлэн санах ой эсвэл Redis дээрУдаан асуулгын эсвэл гадаад API дуудлагын үр дүнӨнөөдрийн валютын ханш, цагт нэг удаа татагдсан
Өгөгдлийн сангийн cacheӨгөгдлийн сангийн доторСаяхан ашигласан өгөгдөл болон асуулгын төлөвлөгөөТүгээмэл мөрүүд хурдан санах ойд байна

CDN (content delivery network) бол таны сайтын файлуудад зориулсан дэлхийн хэмжээний cache-ийн сүлжээ юм.

Cache юуг хадгалахаа яаж шийддэг вэ

Бүх cache ижил асуултуудад хариулах ёстой:

  • Юуг cache хийж болох вэ? Нийтийн, хамтын өгөгдөл (бүтээгдэхүүний зураг, блог нийтлэл) — тийм. Хувийн өгөгдөл (хэрэглэгчийн бүртгэлийн хуудас, мессеж) — хамтын cache-д хэзээ ч биш.
  • Хэр удаан? Энэ нь TTL (time to live). Лого нэг жил cache хийгдэж болно; нөөцийн тоо 30 секунд.
  • Хэрхэн шинэчлэгдэх вэ? Хуулбар дуусаж дахин татагдах, эсвэл өгөгдөл өөрчлөгдөхөд апп зориудаар устгах — үүнийг invalidation гэдэг.

Вэбсайтын хувьд сервер браузер болон CDN-д Cache-Control header ашиглан файл бүрийг хэрхэн cache хийхийг хэлдэг. Жишээ нь Cache-Control: max-age=3600 гэдэг нь «энэ хуулбарыг нэг цаг дахин ашиглаж болно» гэсэн утгатай.

Орчин үеийн build хэрэгслүүд статик файлын хамгийн хүнд хэсгийг cache busting аргаар шийддэг: файл өөрчлөгдөх бүрт шинэ нэр, жишээлбэл app.3f9a2c.js гэх мэт хурууны хээтэй нэр авдаг. Браузер хуучин нэрийг удаан хугацаанд cache хийж болно, учир нь шинэ хувилбар зүгээр л өөр нэртэй байдаг.

Жишээ: бүтээгдэхүүний каталог

Та жижиг онлайн дэлгүүртэй гэж бодъё. Нүүр хуудас өгөгдлийн сангаас 50 бүтээгдэхүүнийг үнэ, нөөцийн тооны хамт харуулдаг, мөн бүх захиалгад удаан тооцоолол шаарддаг «трэнд» жагсаалттай.

  1. Зураг, script нь браузер болон CDN-д удаан хугацаанд cache хийгдэнэ. Шинэ build бүр өөрчлөгдсөн файлд шинэ нэр өгдөг тул шинэчлэлтүүд харагдсаар байна.
  2. Трэнд жагсаалт 10 минут тутам нэг удаа тооцоологдож, аппликейшний cache-д хадгалагдана. Тэр 10 минутын дотор байгаа зочин бүр хадгалсан үр дүнг агшин зуур авна.
  3. Үнэ богино хугацаанд cache хийгдэж, та бүтээгдэхүүнээ засах бүрт cache цэвэрлэгдэнэ, тиймээс харилцагчид хуучин үнийг удаан харахгүй.
  4. Төлбөр дээрх нөөц хэзээ ч cache хийгддэггүй. Хэн нэгэн «Худалдан авах» дархад апп жинхэнэ өгөгдлийн санг шалгадаг, тиймээс саяхан дуусчихсан зүйлийг зарж чадахгүй.
  5. Сагс болон бүртгэлийн хуудсууд хамтын cache-д хэзээ ч хадгалагддаггүй, учир нь тэд хувийнх.

Үр дүн: нүүр хуудас хурдан, өгөгдлийн сан илүү цөөн ажил хийж, мөнгө эсвэл нууцлалд хамаатай зүйл хэзээ ч хуучирдаггүй.

Гол нэр томьёо

Нэр томьёоУтга
Cache hit / missӨгөгдөл cache-д олдсон / эх үүсвэрээс татах шаардлагатай болсон.
TTL (time to live)Cache хийсэн хуулбарыг хэр удаан шинэ гэж үзэх вэ.
Хуучирсан өгөгдөл (stale data)Хуучирсан cache хийсэн хуулбар.
InvalidationЭх өгөгдөл өөрчлөгдсөн тул cache-ийн хуулбарыг зориудаар устгах.
Cache bustingФайл өөрчлөгдөхөд түүний нэр эсвэл URL-ийг солих, ингэснээр cache шинэ хувилбарыг татна.
Cache-ControlБраузер болон CDN-д хариуг хэрхэн cache хийхийг хэлдэг HTTP header.
Hard refreshБраузерт cache-ээ үл тоомсорлохыг хэлж хуудсыг дахин ачаалах.
RedisИхэвчлэн аппликейшний cache болгон ашигладаг, санах ойд ажилладаг өгөгдлийн сан.

Түгээмэл буруу ойлголтууд

  • «Caching үргэлж сайн.» Буруу зүйлийг cache хийх нь жинхэнэ алдаа үүсгэдэг: хуучин үнэ, шинэ нийтлэл харагдахгүй байх, эсвэл хамгийн муу тохиолдолд нэг хэрэглэгчийн хувийн хуудсыг өөр хүнд харуулах. Зориудаар cache хийгээрэй.
  • «Хуучин хувилбарыг харж байвал миний шинэчлэлт амжилтгүй болсон.» Ихэвчлэн тийм биш. Юу нэгэн зүйл эвдэрсэн гэж үзэхээсээ өмнө hard refresh (Ctrl+Shift+R, эсвэл Mac дээр Cmd+Shift+R) эсвэл нууц цонхыг туршаарай.
  • «Caching удаан аппыг засдаг.» Энэ нь давтагдах хүсэлтүүдийн удаанг далдалдаг. Эхний хүсэлт хэвээр удаан байна, мөн суурь асуудал нь өгөгдлийн сангийн индекс байхгүй байсан бол үүнийг бас засах хэрэгтэй.
  • «Бүгдийг аль болох урт хугацаагаар cache хийх ёстой.» Урт cache хугацаа нь өөрчлөгдөхөд шинэ нэр авдаг файлд тохиромжтой. HTML хуудас болон өгөгдлийн хувьд богино хугацаа илүү аюулгүй.
  • «Миний cache-ийг цэвэрлэвэл бүгдэд засагдана.» Энэ нь зөвхөн таны браузерыг цэвэрлэдэг. Зочид болон CDN cache-д өөрсдийн хуулбар хэвээр байна.

AI builder-оосоо юу асуух вэ

  • «Энэ аппын аль хэсэг удаан байгаа вэ, аль нь аюулгүйгээр cache хийгдэж болох вэ?»
  • «[Трэнд жагсаалт / API үр дүн]-г [N] минут cache хийж, суурь өгөгдөл өөрчлөгдөхөд цэвэрлэ.»
  • «Хувийн эсвэл бүртгэлийн өгөгдөлтэй ямар ч хуудсыг CDN эсвэл хамтын cache хадгалж чадахгүй гэдгийг баталгаажуул.»
  • «Fingerprint-тэй статик файлд урт, HTML-д богино cache хугацаа тавь.»
  • «[Гадаад API]-ийн хариуг cache хий, ингэснээр хуудас бүрт дуудахгүй — мөн тэр өгөгдөл хэр хуучрах боломжтойг надад хэл.»
  • «Нийтэлсний дараа хуучин хувилбар харагдаж байна. Энэ миний браузерын cache юу эсвэл юу нэвтрүүлэгдээгүй байна уу?»

Caching Mythex дээр

Mythex аппын шинэчлэлтийг нийтлэсний дараа docs-д CDN cache түр хоцрох боломжтой гэж тэмдэглэсэн бөгөөд нийтийн URL-ийн hard refresh нь шинэ хувилбарыг харуулдаг — Хэрхэн нийтлэх вэ хуудсыг харна уу. Hosting хязгаарлалт хуудас мөн статик нөөцийг cache хийхийг зөвлөдөг, учир нь hosting, өгөгдлийн сангийн цаг, bandwidth нь таны кредит үлдэгдлээс төлөгддөг. Үүнээс цааш — асуулгын үр дүн эсвэл API хариуг cache хийх — бол агентаас аппдаа суулгахыг хүсэх зүйл юм.

Холбоотой унших зүйлс: CDN гэж юу вэ, вэбсайтаа хурдасгах арга болон rate limiting гэж юу вэ.

Асуултууд

Caching гэж энгийнээр юу вэ?

Caching гэдэг нь авахад удаан эсвэл үнэтэй байсан зүйлийн хуулбарыг хадгалах бөгөөд дараагийн удаад хэрэгтэй болоход хадгалсан хуулбараас хурдан үзүүлэхийг хэлнэ. Браузер, CDN, сервер болон өгөгдлийн сан бүгд аппыг хурдан, ажиллуулахад хямд болгохын тулд cache ашигладаг.

Вэбсайтаа шинэчилсний дараа яагаад хуучин хувилбарыг хараад байдаг вэ?

Таны браузер эсвэл CDN хуучин файлуудын хадгалсан хуулбарыг үзүүлж байж магадгүй. Hard refresh (Windows дээр Ctrl+Shift+R, Mac дээр Cmd+Shift+R) ихэвчлэн асуудлыг шийддэг. Зочдын хувьд сайн бүтээгдсэн сайтууд шинэчилсэн файлдаа шинэ нэр өгдөг тул cache нь шинэ хувилбарыг автоматаар татдаг.

Cache-ийг цэвэрлэх нь юу хийдэг вэ?

Браузерийн cache-ийг цэвэрлэх нь браузерын хадгалсан файл, хуудасны хуулбаруудыг устгаж, дараагийн удаад бүх зүйлийг шинээр татдаг болгодог. Энэ нь эвдэрсэн эсвэл хуучирсан харагдах хуудсыг засаж чадна, харин дараа нь анх удаа ачаалахад бага зэрэг удаан байх болно.

Caching асуудал үүсгэж чадах уу?

Тийм. Гол эрсдэл нь хуучирсан өгөгдөл үзүүлэх — хуучин үнэ, шинэчлэгдээгүй нөөцийн тоо — эсвэл илүү аюултай нь нэг хэрэглэгчийн хувийн хуудсыг хадгалаад өөр хүнд харуулах. Сайн caching дүрмүүд нь юуг, хэр удаан хадгалахыг шийдэж, хувийн өгөгдлийг хамтын cache-д хэзээ ч хадгалдаггүй.

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 简体中文 繁體中文(香港) 繁體中文(台灣)