Caching: Sababta Facebook, Netflix iyo Reddit aysan mar kasta Database-ka u weydiin xogta
π§ Engineering Insights #2
- Caching:
Waxaad dhistay application qurux badan. Bilowgii wax walba si fiican ayay u shaqaynayeen. Laakiin markii isticmaalayaashu kordheen, boggii wuxuu bilaabay inuu gaabiyo, API-yadiina waxay qaadanayaan ilbiriqsiyo badan.
Dad badan waxay u malaynayaan in xalka ugu horreeya uu yahay in la iibsado server ka awood badan.
Laakiin shirkadaha waaweyn sida Facebook, Netflix, Reddit, iyo X (Twitter) badankood ma bilaabaan inay kordhiyaan server-ka. Waxay marka hore isweydiiyaan:
"Ma khasab baa inaan database-ka waydiino request kasta?"
Halkaas ayay ka bilaabataa Caching.
Waa maxay Cache?
Cache waa meel kaydin degdeg ah oo lagu hayo xogta inta badan la isticmaalo si aan mar kasta dib looga soo akhrin database-ka ama adeeg kale oo gaabis ah.
Si fudud u fikir:
- Database = Bakhaar weyn.
- Cache = Alaabta ugu dhow miiska shaqada.
Haddii shayga aad rabto uu miiska yaallo, isla markiiba waad qaadanaysaa.
Haddii uusan yaallin, waxaad u aadaysaa bakhaarka, kadibna waxaad dib ugu soo celinaysaa miiska si marka xigta uu diyaar u noqdo.
Taasi waa fikradda cache.
Maxaa dhacaya haddii Cache uusan jirin?
Bal qiyaas e-commerce platform.
Macaamiishu waxay mar kasta furayaan bogga:
Top Selling Products
Request kasta wuxuu sameynayaa:
SELECT *
FROM products
ORDER BY sales DESC
LIMIT 20;
Haddii 100,000 qof ay isla bogga furaan saacad gudaheed...
Database-ku wuxuu fulinayaa isla query-ga 100,000 jeer.
Inkastoo natiijadu isku mid tahay.
Taasi waa shaqo aan loo baahnayn.
Sidee Cache u shaqeeyaa?
Habka ugu fudud waa sidan:
User Request
β
βΌ
Cache ma leedahay xogta?
β
ββββββ΄βββββ
β β
Haa Maya
β β
βΌ βΌ
Soo celi Database
xogta β
βΌ
Kaydi Cache
β
βΌ
User
Marka request-ka labaad yimaado...
Database lama taabanayo.
Cache ayaa jawaabta bixinaya.
Cache Hit vs Cache Miss
Waxaa jira laba xaaladood.
Cache Hit
Xogtii waa la helay.
User
β
Cache
β
Response
Tani waa tan ugu degdegga badan.
Cache Miss
Cache ma hayo xogta.
User
β
Cache
β
Database
β
Cache
β
User
Marka xigta waxay noqon doontaa Cache Hit.
Maxaa faa'iido u leh Cache?
1. Performance
Response-ku wuxuu noqon karaa tobanaan ama boqolaal jeer ka dhaqso badan.
2. Database Load
Database-ka waxaa laga yareeyaa shaqada aan loo baahnayn.
3. Scalability
Application-ku wuxuu qaabili karaa users badan isagoo aan si weyn u kordhin server-yada.
4. User Experience
Pages-ku waxay dareemayaan kuwo isla markiiba furmaya.
Noocyada Cache
1. Browser Cache
Browser-ku wuxuu kaydiyaa:
- Images
- CSS
- JavaScript
- Fonts
Marka user-ku dib u soo booqdo website-ka, looma baahna in wax walba mar kale la soo dejiyo.
2. CDN Cache
Shabakadaha sida Cloudflare waxay ku kaydiyaan assets server-ka ugu dhow user-ka.
Taasi waxay yaraynaysaa waqtiga safarka xogta.
3. Server Cache
Backend-ku wuxuu kaydiyaa responses-ka inta badan la isticmaalo.
Tusaale:
Trending Posts
Popular Communities
Categories
4. Database Cache
Database-yada casriga ah waxay leeyihiin cache gudaha ah oo kaydiya pages-ka iyo queries-ka si loo yareeyo disk access.
5. In-Memory Cache
Kuwa ugu caansan waa:
- Redis
- Memcached
Waxay xogta ku kaydiyaan RAM.
RAM waxay ka dheereysaa disk-ka boqolaal jeer.
Taasi waa sababta Redis uu u noqday mid caan ah.
Tusaale Dhab ah
Bal qiyaas GOLE.
Home Feed-ka waxaa booqda kumanaan users.
Request kasta:
SELECT *
FROM posts
ORDER BY score DESC
LIMIT 30;
Haddii request kasta database-ka loo diro...
Database-ku si joogto ah ayuu mashquul u ahaanayaa.
Laakiin haddii response-ka lagu kaydiyo Redis muddo 30 ilbiriqsi ah...
Kumanaan users waxay heli karaan isla response-ka iyada oo hal query oo keliya database-ka laga fuliyay.
Goorma ayay tahay inaad isticmaasho Cache?
Cache wuxuu ku habboon yahay xogta:
β Inta badan la akhriyo.
β Si yar isu beddesha.
β Dad badan wada isticmaalaan.
Tusaalooyin:
- Trending Posts
- Categories
- User Profiles
- Product Catalog
- Home Feed
- Popular Discussions
Goorma AAN Cache loo isticmaalin?
Ha cache-gareyn xogta:
β Aad u badan isugu beddesha.
β Xasaasiga ah.
β User kasta gaar u ah haddii aan si taxaddar leh loo kala soocin.
Tusaale:
- Passwords
- Bank Balance
- Authentication Tokens
- One-Time Codes
Cache Expiration (TTL)
Cache weligiis ma sii jiro.
Waxa loo sameeyaa waqti dhac.
Tusaale:
Trending Posts
TTL = 60 seconds
Hal daqiiqo kadib...
Cache waa la tirtiraa.
Request-ka xiga wuxuu soo saarayaa xog cusub.
Cache Invalidation
Waxaa jira oraah caan ka ah Software Engineering:
"There are only two hard things in Computer Science: Cache invalidation and naming things."
Maxaa yeelay...
Haddii xogtu is beddesho...
Sidee loo hubiyaa in cache-ku aanu wali bixin xog duugoowday?
Tani waa mid ka mid ah dhibaatooyinka ugu adag software engineering.
Khaladaadka ugu badan
β Wax kasta oo la cache-gareeyo.
β TTL aad u dheer.
β In la illoobo in cache-ka la nadiifiyo marka xogtu is beddesho.
β In la cache-gareeyo xog user gaar u ah iyadoo aan la kala saarin.
β In la maleeyo in cache uu beddelayo database-ka.
Cache ma beddelo database.
Wuxuu dedejiyaa helitaanka xogta.
Best Practices
- Cache garee xogta inta badan la akhriyo.
- Isticmaal TTL ku habboon.
- Isticmaal Redis ama Memcached marka traffic-ku bato.
- Kormeero Cache Hit Rate.
- Ka saar cache-ka marka xog muhiim ahi is beddesho.
- Ha ku tiirsanaan cache oo keliya; database-ku waa isha rasmiga ah ee xogta.
Gunaanad
Caching waa mid ka mid ah farsamooyinka ugu muhiimsan ee lagu dhiso applications degdeg ah oo la miisaami karo (scalable).
Mararka qaarkood, ku darista cache sax ah waxay bixisaa faa'iido ka weyn iibsashada server cusub.
Software Engineering ma aha oo keliya qorista code shaqaynaya; waa dhisidda nidaam si caqli leh u isticmaalaya kheyraadka, u adeegaya isticmaalayaal badan, isla markaana bixiya khibrad degdeg ah.
Caching waa tiir ka mid ah falsafaddaas.
π¬ Dood
Haddii aad dhisayso social platform ama e-commerce application, maxay yihiin qaybaha ugu horreeya ee aad cache-gareyn lahayd? Maxaadse u dooran lahayd?

