Кэш гэж юу вэ?

Кэш гэдэг нь байнга ханддаг өгөгдлийг түр хадгалалтын байршилд (кэш) хадгалах үйл явц бөгөөд өгөгдлийг эх сурвалжаас нь татаж авахад шаардагдах хугацааг багасгах явдал юм.

Кэш гэж юу вэ?

Кэш нь мэдээллийг хадгалах арга бөгөөд ирээдүйд илүү хурдан хандах боломжтой. Энэ нь уншихыг хүссэн болгондоо номын сан руу орохын оронд байнга уншдаг номынхоо нэг хувийг орныхоо дэргэдэх ширээн дээр хадгалахтай адил юм. Үүнтэй адилаар таныг вэб сайтад зочлоход таны компьютер тухайн вэб сайтын зарим мэдээллийг хадгалах бөгөөд ингэснээр дараагийн удаа зочлоход илүү хурдан ачаалагдах болно.

Кэш хийх нь бидний өдөр тутмын онлайн туршлагын салшгүй хэсэг болсон үйл явц юм. Энэ нь байнга ханддаг өгөгдлийг түр хадгалах газар болох кэшэд хадгалах арга юм. Энэ нь өгөгдөлд илүү хурдан нэвтрэх боломжийг хөнгөвчлөх, програм болон системийн ажиллагааг сайжруулахад тусалдаг. Кэшийг вэб хөтөч, сервер, контент дамжуулах сүлжээнд өргөн ашигладаг.

Кэш хийх нь урьд нь олж авсан эсвэл тооцоолсон өгөгдлийг дахин үр дүнтэй ашиглах боломжийг олгодог бөгөөд ингэснээр өгөгдөлд хандах хугацааг багасгадаг. Өмнө нь хандсан өгөгдлийн талаар хүсэлт гаргах үед кэш нь үндсэн хадгалалтын байршлаас өгөгдлийг татаж авах шаардлагагүйгээр хүсэлтэд шууд хариу өгөх боломжтой. Үүний үр дүнд хариу өгөх хугацаа хурдан, хоцрогдол багасна. Кэшийг вэб сайтын гүйцэтгэлийг сайжруулахын тулд серверүүдэд ихэвчлэн ашигладаг бөгөөд үүнийг RAM эсвэл диск дээр хийж болно.

Ерөнхийдөө кэш хийх нь бидний онлайн өгөгдөлд хандах хандлагыг өөрчилсөн чухал үйл явц юм. Энэ нь орчин үеийн тооцооллын үндсэн хэсэг болж, өгөгдөлд илүү хурдан, үр дүнтэй хандах боломжийг бидэнд олгосон. Хоцролтыг багасгаж, системийн гүйцэтгэлийг сайжруулснаар кэш нь бизнес эрхлэгчид болон хувь хүмүүсийн хувьд чухал хэрэгсэл болсон.

Кэш гэж юу вэ?

тодорхойлолт

Кэш гэдэг нь байнга ашиглагддаг өгөгдлийг кэш гэж нэрлэгддэг түр хадгалах хэсэгт хадгалах үйл явц юм. Кэш хийх зорилго нь өгөгдөлд хандах хугацааг багасгах замаар програм болон системийн гүйцэтгэлийг сайжруулахад оршино. Кэшэд хадгалагдсан өгөгдлийн хүсэлтийг систем нь анхны эх сурвалжаас нь авахын оронд кэшээс гаргаж авах боломжтой бөгөөд энэ нь удаашралтай байдаг.

Кэш хэрхэн ажилладаг вэ?

Өгөгдөл авах хүсэлт гаргах үед систем нь кэшийг шалгаж, өгөгдөл хадгалагдсан эсэхийг шалгадаг. Хэрэв тийм бол систем нь кэшээс өгөгдлийг татаж аваад хэрэглэгчдэд үйлчилдэг. Хэрэв өгөгдөл кэшэд байхгүй бол систем нь түүнийг анхны эх сурвалжаас нь авч, ирээдүйд ашиглах зорилгоор кэшэд хадгалдаг. Дараагийн удаа өгөгдөл хүссэн тохиолдолд кэшээс үйлчлэх бөгөөд энэ нь түүнийг эх сурвалжаас нь авахаас илүү хурдан юм.

Кэшийн төрлүүд

Санах ойн кэш, санах ойн кэш, дискний кэш зэрэг хэд хэдэн төрлийн кэш байдаг. Санах ойн кэш нь өгөгдлийг системийн кэш санах ойд хадгалдаг бөгөөд энэ нь диск дээр хадгалахаас илүү хурдан байдаг. Санах ойн кэш нь системийн RAM-д өгөгдлийг хадгалдаг бөгөөд энэ нь санах ойн кэшээс ч хурдан байдаг. Дискний кэш нь өгөгдлийг дискэнд хадгалдаг бөгөөд энэ нь санах ойн кэшээс удаан боловч илүү их мэдээлэл хадгалах боломжтой.

Мөн кэшийг вэб хөтөч, вэб сервер, CDN (Content Delivery Network) болон эх сервер зэрэг янз бүрийн түвшинд хийж болно. Вэб хөтчүүд вэб серверт ирэх хүсэлтийн тоог багасгахын тулд HTML, зураг, кодыг кэш болгодог. Вэб серверүүд нь CPU-ийн ачааллыг бууруулж, програмын гүйцэтгэлийг сайжруулахын тулд хариултын өгөгдлийг кэш болгодог. CDN нь хоцролтыг багасгаж, хэрэглэгчийн туршлагыг сайжруулахын тулд агуулгыг кэш болгодог. Оригинал серверүүд нь арын серверүүдийн ачааллыг бууруулж, програмын гүйцэтгэлийг сайжруулахын тулд өгөгдлийг кэш болгодог.

API нь гүйцэтгэлийг сайжруулахын тулд кэшийг ашиглах боломжтой. API хүсэлт гаргах үед систем нь кэшийг шалгаж, хариулт нь тэнд хадгалагдсан эсэхийг шалгах боломжтой. Хэрэв тийм бол систем хүсэлтийг дахин боловсруулахын оронд кэшээс хариу өгөх боломжтой.

Дүгнэж хэлэхэд, кэш нь байнга ашиглагддаг өгөгдөлд хандах хугацааг багасгах замаар програм болон системийн гүйцэтгэлийг сайжруулах үнэ цэнэтэй арга юм. Өгөгдлийг кэшэд хадгалснаар системүүд өгөгдлийг илүү хурдан татаж, арын серверийн ачааллыг бууруулж чадна.

Кэшийн ашиг тус

Кэш нь программуудын гүйцэтгэлийг сайжруулж, зардлыг бууруулж, дамжуулах чадварыг нэмэгдүүлэх замаар олон тооны ашиг тусыг авчрах арга техник юм. Кэш хийх хамгийн чухал давуу талууд энд байна:

Гүйцэтгэл сайжирсан

Кэшийн гол давуу талуудын нэг нь програмуудын гүйцэтгэлийг мэдэгдэхүйц сайжруулдаг явдал юм. Учир нь санах ойн кэшээс өгөгдлийг унших нь дискэнд суурилсан мэдээллийн сангаас өгөгдөлд хандахаас хамаагүй хурдан байдаг. Тогтмол ханддаг өгөгдлийг RAM-д хадгалснаар кэш нь удаан, урт хугацааны хадгалах төхөөрөмжөөс өгөгдөлд хандахтай холбоотой саатлыг бууруулдаг. Энэ нь хэрэглэгчийн туршлагыг сайжруулж, бизнесийн чухал үйл явцын үр ашгийг нэмэгдүүлэх боломжтой.

Зардлын хувьд үр ашигтай

Мөн кэш нь мэдээллийн баазыг ашиглахтай холбоотой зардлыг бууруулахад тусалдаг. Тогтмол ханддаг өгөгдлийг санах ойд хадгалснаар кэш хийх нь өгөгдлийн сангаас өгөгдөл авах шаардлагатай тоог багасгадаг. Энэ нь өгөгдлийн сангийн серверийн ачааллыг бууруулахад туслах бөгөөд энэ нь эргээд мэдээллийн сангийн ашиглалт, зардлыг бууруулахад тусална.

Өндөр дамжуулах чадвар

Мөн кэш хийх нь дамжуулах чадварыг нэмэгдүүлэхэд тусалдаг бөгөөд энэ нь тухайн хугацаанд систем боловсруулж болох өгөгдлийн хэмжээ юм. Тогтмол ханддаг өгөгдлийг санах ойд хадгалснаар кэш хийх нь өгөгдлийн сан эсвэл бусад хадгалах төхөөрөмжөөс өгөгдлийг сэргээхэд шаардагдах хугацааг багасгахад тусална. Энэ нь програмын нийт дамжуулах чадварыг нэмэгдүүлэхэд тусална.

Кэш нь вэб кэш, тархсан кэш, санах ойн кэш гэх мэт олон хэлбэртэй байж болно. Зарим алдартай кэшийн шийдлүүд нь Redis, Memcached, Hazelcast юм. Агуулга хүргэх сүлжээ (CDN) нь мөн байнга ханддаг контентыг газарзүйн хувьд тархсан байршилд хадгалахын тулд кэшийг ашигладаг бөгөөд ачаалах хугацааг багасгаж, кибер халдлагаас хамгаалдаг.

Ерөнхийдөө кэш нь програмуудад олон ашиг тус авчрах хүчирхэг техник юм. Гүйцэтгэлийг сайжруулж, зардлыг бууруулж, дамжуулах чадварыг нэмэгдүүлснээр кэш нь програмуудыг хурдан, үр ашигтай, найдвартай болгоход тусална.

Кэш хийх шилдэг туршлагууд

Кэш нь вэб програмуудын гүйцэтгэл, өргөтгөх чадварыг сайжруулах хүчирхэг хэрэгсэл юм. Гэсэн хэдий ч кэшийг бүрэн ашиглахын тулд зарим шилдэг туршлагыг дагаж мөрдөх нь чухал юм. Энэ хэсэгт бид кэш хийх шилдэг туршлагуудын талаар ярилцах болно.

Кэшийг хүчингүй болгох

Кэшийг хүчингүй болгох нь кэшээс хуучирсан эсвэл хуучирсан өгөгдлийг устгах үйл явц юм. Өгөгдөл өөрчлөгдөх үед кэшийг хүчингүй болгох нь чухал бөгөөд кэшэд хадгалагдсан өгөгдөл нь шинэчлэгдсэн байх ёстой. Кэшийг хүчингүй болгох хэд хэдэн арга байдаг:

  • Амьдрах хугацаа (TTL): Кэш нь өгөгдлийг хэр удаан хадгалах хугацааг тогтооно. TTL хугацаа дууссаны дараа кэш хүчингүй болно.
  • Cache-Control Header: Cache-Control толгой хэсгийг ашиглан кэш нь өгөгдлийг хэр удаан хадгалахыг зааж өгнө. Энэ толгой хэсгийг мөн кэштэй холбоотой бусад тохиргоог зааж өгөхөд ашиглаж болно, тухайлбал кэшийг олон хэрэглэгчид хуваалцах боломжтой эсэх, эсвэл өгөгдөлд үйлчлэхээс өмнө кэшийг дахин баталгаажуулах шаардлагатай эсэх.
  • Гараар хүчингүй болгох: Өгөгдөл өөрчлөгдөх үед кэшийг гараар хүчингүй болгоно. Үүнийг серверт кэшийг хүчингүй болгохыг заасан тусгай толгойтой хүсэлт илгээх замаар хийж болно.

Кэш солих бодлого

Кэшийг солих бодлого нь кэш дүүрсэн үед кэшээс ямар зүйлсийг устгах ёстойг тодорхойлдог. Хэд хэдэн кэш солих бодлого байдаг бөгөөд тус бүр өөрийн гэсэн давуу болон сул талуудтай. Хамгийн нийтлэг бодлогын зарим нь:

  • Хамгийн сүүлд ашигласан (LRU): Кэшээс хамгийн сүүлд ашигласан зүйлийг устгана уу.
  • Эхлээд орж ирсэн (FIFO): Кэшээс хамгийн хуучин зүйлийг устгана уу.
  • Хамгийн бага ашиглагддаг (LFU): Кэшээс хамгийн бага ашиглагддаг зүйлийг устгана уу.

Cache-Control Header

Cache-Control толгой хэсэг нь кэшийн ажиллагааг хянадаг HTTP толгой хэсэг юм. Энэ нь кэш нь өгөгдлийг хэр удаан хадгалах, кэшийг олон хэрэглэгчийн хооронд хуваалцах боломжтой эсэх, мөн өгөгдөлд үйлчлэхээс өмнө кэшийг дахин баталгаажуулах шаардлагатай эсэхийг тодорхойлоход ашиглагдаж болно. Cache-Control толгойг мөн кэш нь диск дээр эсвэл санах ойд өгөгдлийг хадгалах эсэх гэх мэт кэштэй холбоотой бусад тохиргоог тодорхойлоход ашиглаж болно.

Бусад анхаарах зүйлс

Кэшийг хэрэгжүүлэхдээ бусад хэд хэдэн зүйлийг анхаарч үзэх хэрэгтэй.

  • Кэшийн байршил: Кэшийг хаана хадгалахаа бодож үзээрэй. Кэшийг үндсэн санах ой, хатуу диск эсвэл контент дамжуулах сүлжээ (CDN) дээр хийж болно.
  • Санах ойн удирдлагын нэгж (MMU): Үндсэн санах ойд кэш хийхдээ MMU-г анхаарч үзээрэй. MMU нь санах ойн хуваарилалтыг удирдах үүрэгтэй бөгөөд кэшийн гүйцэтгэлд нөлөөлж болно.
  • Арын мэдээллийн сан: Кэш хийхдээ арын мэдээллийн баазыг анхаарч үзээрэй. Хэрэв кэш дэх өгөгдөл байхгүй бол syncарын мэдээллийн баазтай хronized, энэ нь зөрчилд хүргэж болзошгүй.
  • CDN кэш: CDN ашиглахдаа CDN кэшийг анхаарч үзээрэй. CDN кэш нь өгөгдлийг хэрэглэгчдэд ойртуулах замаар кэшийн гүйцэтгэлийг сайжруулж чадна.
  • DNS кэш: CDN ашиглахдаа DNS кэшийг анхаарч үзээрэй. DNS кэш нь DNS хайлтын хоцролтыг багасгаж, кэшийн гүйцэтгэлийг сайжруулдаг.

Дүгнэж хэлэхэд кэш нь вэб програмын гүйцэтгэл, өргөтгөх чадварыг сайжруулах хүчирхэг хэрэгсэл юм. Кэшийг хүчингүй болгох, кэш солих бодлого, Cache-Control толгой хэсгийг ашиглах зэрэг кэш хийх шилдэг туршлагыг дагаж мөрдвөл та кэшээ үр ашигтай, үр дүнтэй байлгах боломжтой.

Кэшлэх технологи

Кэш нь байнга ханддаг өгөгдлийн хариу өгөх хугацааг багасгах замаар програмын гүйцэтгэлийг сайжруулдаг чухал технологи юм. Кэшлэх технологийг дөрвөн төрөлд ангилж болно: In-Memory Caching, Proxy Caching, CDN Caching, Browser Caching.

Санах ойн кэш

In-Memory Caching нь удаашралтай санах ойн төхөөрөмжөөс өгөгдлийг татаж авахад шаардагдах хугацааг багасгахын тулд DRAM гэх мэт түр санах ойд байнга ханддаг өгөгдлийг хадгалдаг. Энэ технологийг сессийн удирдлага, түлхүүр утгын өгөгдлийн хадгалалт, NoSQL мэдээллийн сан зэрэг янз бүрийн програмуудад ашигладаг. Санах ой доторх кэш нь програмын хариу өгөх хугацааг эрс багасгаж, хэрэглэгчийн туршлагыг сайжруулдаг.

Прокси кэш хийх

Прокси кэш нь үйлчлүүлэгч болон серверийн хооронд байнга ханддаг өгөгдлийг прокси сервер дээр хадгалдаг. Үйлчлүүлэгч өгөгдөл хүсэх үед прокси сервер нь хүссэн өгөгдөл байгаа эсэхийг шалгахын тулд кэшээ шалгадаг. Хэрэв өгөгдөл байгаа бол прокси сервер нь хүсэлтийг сервер рүү дамжуулахгүйгээр үйлчлүүлэгч рүү буцаана. Прокси кэш нь зурвасын өргөн хэрэглээ болон серверийн хариу өгөх хугацааг багасгах замаар програмын гүйцэтгэлийг сайжруулж чадна.

CDN кэш

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

Хөтөчийн кэш хийх

Browser Caching нь үйлчлүүлэгчийн хөтөч дээр байнга ханддаг өгөгдлийг хадгалдаг. Үйлчлүүлэгч өгөгдөл хүсэх үед хөтөч нь хүссэн өгөгдөл байгаа эсэхийг шалгахын тулд кэшээ шалгадаг. Хэрэв өгөгдөл байгаа бол хөтөч үүнийг серверээс хүсэхгүйгээр үйлчлүүлэгч рүү буцаана. Хөтөчийг кэшлэх нь програмын хариу өгөх хугацаа болон зурвасын өргөн ашиглалтыг багасгах замаар хэрэглэгчийн туршлагыг сайжруулж чадна.

Кэшлэх технологи нь програмын гүйцэтгэлийг сайжруулах, байнга ханддаг өгөгдлийн хариу өгөх хугацааг багасгахад зайлшгүй шаардлагатай. Хөгжүүлэгчид кэшийн технологийг ашигласнаар хэрэглэгчийн туршлагыг эрс сайжруулж, серверийн зурвасын хэрэглээг багасгаж чадна.

Дэлгэрэнгүй унших

Кэш гэдэг нь ихэвчлэн түр зуурын шинж чанартай өндөр хурдтай өгөгдөл хадгалах давхаргад дэд багц өгөгдлийг хадгалах үйл явц бөгөөд ингэснээр өгөгдлийн үндсэн хадгалалтын байршилд хандсанаар тухайн өгөгдлийн ирээдүйн хүсэлтүүд боломжтой болохоос илүү хурдан хийгддэг. Энэ нь өмнө нь олж авсан эсвэл тооцоолсон өгөгдлийг үр дүнтэй дахин ашиглах боломжийг олгодог (эх сурвалж: AWS). Тооцооллын хувьд кэш нь өгөгдлийг хадгалдаг техник хангамж эсвэл програм хангамжийн бүрэлдэхүүн хэсэг бөгөөд ингэснээр тухайн өгөгдлийн ирээдүйн хүсэлтэд илүү хурдан үйлчлэх боломжтой болно. Кэшд хадгалагдсан өгөгдөл нь өмнөх тооцооллын үр дүн эсвэл өөр газар хадгалагдсан мэдээллийн хуулбар байж болно (эх сурвалж: Википедиа)).

Холбогдох вэб сайтын гүйцэтгэлийн нөхцөл

Мэдээлэлтэй байгаарай! Манай мэдээллийн товхимолд нэгдээрэй
Яг одоо бүртгүүлж, зөвхөн захиалагчдад зориулсан гарын авлага, хэрэгсэл, нөөцөд үнэ төлбөргүй хандаарай.
Та хүссэн үедээ бүртгэлээ цуцлах боломжтой. Таны өгөгдөл аюулгүй байна.
Мэдээлэлтэй байгаарай! Манай мэдээллийн товхимолд нэгдээрэй
Яг одоо бүртгүүлж, зөвхөн захиалагчдад зориулсан гарын авлага, хэрэгсэл, нөөцөд үнэ төлбөргүй хандаарай.
Та хүссэн үедээ бүртгэлээ цуцлах боломжтой. Таны өгөгдөл аюулгүй байна.
Хуваалцах...