GH GambleHub

Tehnologiýalar we infrastruktura → Kesh derejeleri we maglumatlary saklamak

Kesh derejeleri we maglumatlary saklamak

1) Näme üçin köp gatlakly keş gerek?

Keş - "gymmat" kiçi ulgamlara (DB, daşarky API, torlar) gitmezden jogap bermegiň gysga ýoludyr. Köp gatlakly ýük paýlaýar: brauzer → CDN/edge → amaly gatlak → paýlanan kesh → DB/ammar. Maksatlar: P95/P99 azaltmak, origini düşürmek, piklere has berk çydam etmek we baýtyň bahasyny arzanlatmak.

2) Keşiň derejeleriniň kartasy

1. Браузер: `Cache-Control`, `ETag`, `Last-Modified`, `stale-while-revalidate`.
2. CDN/Edge: TTL/ключ, Vary, Signed URLs, image-resize; tiered/shield.
3. API Gateway/Service Mesh: howpsuz GET üçin gysga möhletli jogap keşi.
4. Programma (in-process): LRU/LFU, "gyzgyn" açarlar üçin near-cache, millisekundlar.
5. Paýlanan kesh (Redis/Memcached): dinamika üçin esasy gatlak.
6. Keshler DB: Pg/Innodb buferleri, PgBouncer multiplexing, materialized views.
7. Disk/obýekt hekaýalary: precomputed snapshots, blob-kesh (mysal üçin, S3 + CDN).

Prinsipi: "Ulanyja näçe ýakyn bolsa, TTL şonça gysga we az şahsylaşdyrylýar; maglumatlara näçe ýakyn bolsa, şonça-da tutanýerlilik syýasaty baý bolýar".

3) Kesmek patternleri

Cache-Aside (Lazy): okaýarys → MISS-de çeşmeden ýükleýäris → kese salýarys. Ýönekeý, TTL-e gözegçilik edýär.
Read-Through: Programma çeşmeden özüne çekýän keş arkaly okaýar. Syýasaty merkezleşdirmek amatly.
Write-Through: Giriş birbada kesele we çeşmä gidýär. Has tutanýerli, ýöne ýazga görä has gymmat.
Write-Back (Write-Behind): kese ýazýarys, çeşme asinxron täzelenýär (nobat). Ýokary tizlik, eltip bermek kepilligi we idempotentlik talap edilýär.
Refresh-Ahead: "top" açarlarynda TTL gutarýança bahany täzeleýäris.

Nirede: oýun kartoçkalary/kataloglar - cache-aside/read-through; hasaplaýjylar/liderbordlar - write-back + CRDT/agregasiýalar; walýuta/çäk gollanmalary - gözegçilik edilýän TTL bilen read-through.

4) Açarlar, segmentasiýa we neýming

Шаблон: `domain:entity:{id}:v{schema}|region={R}|currency={C}|lang={L}`.
Diňe jogaby üýtgedýän zady açara goşuň (sebit, walýuta, dil, shema görnüşi).
Shemalaryň wersiýasy: gabat gelmeýän üýtgeşmeler bilen, köpçülikleýin purge-den gaça durup, açarda 'vN' -ni ýokarlandyryň.
Önümler/tenantlar boýunça namespacing: 'tenant: {t}:...' - multi-tenant üçin möhüm.
"Açaryň barlygy" üçin Bloom süzgüç çeşmä syýahaty azaldyp biler.

5) TTL, täzelik we maýyplyk

TTL matrisi:
  • statika (kesilen faýllar): 30-365 gün + 'immutable';
  • kataloglar/bannerler: 5-60 minut + 'stale-while-revalidate';
  • öňdebaryjy tagtalar/sitatalar: 2-15 sekunt;
  • gollanmalar (walýutalar/çäkler): 1-10 minut.
  • Wakalar bilen maýyplyk: 'product. updated '→ nokat açarynyň/prefiksiniň maýyplygy.
  • Tag-based purge: taglar boýunça toparlaýyn arassalamak (mahabat/katalogyň çykmagy).
  • Soft-Expiry: TTL gutarandan soň, köne 'stale' diýip berýäris, şol bir wagtyň özünde täzelenýäris (SWR/SIE).
  • Versioned Keys> köpçülikleýin purge: arzan we has ygtybarly.

6) Stampede, "gyzgyn" açarlar we bäsdeşlik

Dogpile/Stampede goragy:
  • Single-flight (request coalescing): bir lider açary täzeleýär, galanlary garaşýar.
  • TTL jitter: bir wagtyň özünde çökmekden gaça durup, akymlary ýuwýarys.
  • SWR lokal: ulanyja möhleti geçen bahany berýäris, fonda täzelenýäris.
Hot Keys:
  • "gyzgyn" açaryň okamak arkaly paýlanan birnäçe 'key # 1.. N' slotlaryna göçürilmegi;
  • prosesiň ýadynda near-cache;
  • iň ýokary derejeden öň prewarm/refresh-ahead (ýaryşlar/oýunlar).
  • Agyr açarlar üçin konkarrensi täzelenmeleriniň çäkleri.

7) Yzygiderlilik we çapraz gatlaklar

Write-invalidate: çeşmä ýazylanda - degişli açarlary sinhronly maýyp ediň (pub/sub).
Read-repair: gapma-garşylyklar ýüze çyksa, keseki dogry baha bilen täzeläň.
Eventual vs Strong: möhüm pul amallaryny göni/gysga TTL bilen okaýarys; UI-vitrinler we statistika - eventual.
CRDT/agregatorlar: paýlanan hasaplaýjylar/reýtingler üçin - "merge-safe" (akymlarda G-Counter, Top-K) gurluşlary.
Kaskadly maýyplyk: "oýnuň" täzelenmegi kartoçkany maýyp edýär + sanaw + ulanyjy teklipleriniň keşi.

8) Serial, gysyş we format

Formatlar: Protobuf/MessagePack JSON-dan has çalt; CDN/brauzer üçin - Brotli JSON.
Redisdäki gysyş: obýektler üçin peýdaly> 1-2 KB, ýöne CPU-ny yzarlaň.
Partial responses/meýdanlar talap boýunça: az bayt → az TTFB we RAM.

9) Çalyşmak syýasaty we möçberi

LRU (standart) - howpsuz; LFU - "meşhur" mazmun üçin has gowudyr.
Açarlaryň ululygy: gözegçilikde saklaň (metrikler 'avg value size', 'max').
Bir önümiň ähli keşi "iýmezligi" üçin namespace/tenant boýunça kwotalar.

10) Howpsuzlyk we PII/PCI

Şahsy/maliýe maglumatlary - CDN/edge we umumy gatlaklarda kesmezlik; bellikleri/proýeksiýalary ulanyň.
Client-side crypto (TTL gözegçiliginiň ýitmegine seresaplylyk bilen) arkaly Redisdäki duýgur gymmatlyklary şifrlemek.
Berk ACL we tor izolýasiýasy; üpjün edijilere egress üçin kesgitlenen NAT/IP.

11) Synlamak we SLO kesh

Metrikler:
  • Hit Ratio (gatlaklara we prefikslere görä), Origin Offload.
  • TTFB/P95/P99 öň/soň, Latency Redis.
  • Evictions, OOM, keyspace hits/misses.
  • Stampede rate (paralel täzelenmeleriň paýy), refresh time.
  • Stale served % и Freshness lag.
SLO mysallary:
  • Oýunlaryň katalogy: Hit Ratio ≥ 85%, TTFB P95 ≤ 150 ms (edge).
  • API-gollanmalar: Revalidation-hit ≥ 60%, P95 ≤ 200 ms.
  • Redis: P99 amal ≤ 5 ms, evictions sagatda 1% -den köp bolmaly däldir.

12) FinOps: nagt pul

$/GB-aý RAM vs $/RPS origin: öwezini dolmak nokadyny hasaplaň.
Offload we egress: CDN + Redis sebit-originden çykýan traffigi azaldar.
Image/WebP/AVIF we denormizasiýa iň köp baýt tygşytlaýar.
"Gymmat MISS" -leri çäklendiriň: "bayt × MISS × sebit" analitigi.

13) Mysallar (bölekler)

13. 1 Cache-Aside with single-flight (psevdokod)

python def get(key, ttl, loader):
val = redis. get(key)
if val: return val with single_flight (key): # only one updates val = redis. get (key) # double check if val: return val data = loader () # request to source redis. setex(key, ttl_with_jitter(ttl), serialize(data))
return data

13. 2 Waka boýunça maýyplygy çap etmek

json
{
"event": "game. updated",
"game_id": "g123",
"affected": ["catalog:list:region=TR", "game:card:g123:"]
}

Konsumer kanala ýazylýar we 'DEL '/' PUBLISH' -ni degişli açarlar/bellikler bilen ýerine ýetirýär.

13. 3 Diagramma wersiýasy we lokal açar


game:card:v2:id=g123    region=BR    currency=BRL    lang=pt-BR

14) Girizmegiň çek-sanawy

1. Kesh derejeleri we TTL-matrisa (statik/ýarym statik/API).
2. Açarlar Naiming: domen, shema görnüşi, lokal/sebit/walýuta, tenant.
3. Pattern per-endpoint (aside/read-through/write-through/back).
4. SWR/SIE, single-flight we TTL-jitter vs stampede.
5. Çäreler bilen maýyplyk (pub/sub), toparlar üçin tag-purge.
6. Iň ýokary derejeden öň "gyzgyn" açarlar we prewarm üçin Near-cache.
7. Formatlar we gysyş (protobuf/MsgPack, Brotli), ululyk gözegçiligi.
8. LRU/LFU syýasaty, namespace/tenant üçin kwotalar.
9. SLO/метрики: hit ratio, latency, evictions, stale %, freshness lag.
10. Howpsuzlyk: şahsy, tokenizasiýa, tor/ACL üçin no-store.

15) Anti-patternler

'no-cache' "we TTL-den ýüz öwürmek - nol offload.
Açar ähli query/başlyklary öz içine alýar → kardinallyk partlamasy.
Her çykarylanda "jemi CDN/Redis" köpçülikleýin purge.
Stampede goragynyň ýoklugy we "top açarlarynyň" bir gezeklik gutarmagy.
Kwotalar/izolýasiýa bolmazdan ýeke-täk umumy Redis; "gyzgyn" tenant ähli keşi iýýär.
edge/CDN-e şahsy jogaplary kesmek.
Telemetriýa ýok freshness/evictions → kör dolandyryş.

16) iGaming/fintech mazmuny: amaly bellikler

Liderbordlar/reýtingler: TTL 2-10 s, aggregate-akymlar + CRDT, SWR şowsuzlyklarda.
Oýun katalogy/bannerleri: CDN + Redis; açar: sebit/walýuta/dil; "promo: update" bellikleri boýunça maýyplyk.
Töleg statuslary: ýazuw ýolunda nagt däl; okamak - gysga TTL (3-5 s ≤) ýa-da göni haýyş.
KYC/AML jogaplary: PII däl emele getirijileri (statuslary) keşpläň, Redisde şekilleri/resminamalary saklamaň.
VIP-ýol: aýratyn namespace/howuz Redis, ileri tutulýan hyzmat.

Jemi

Güýçli nagt strategiýa derejeleriň arhitekturasy, dogry täzelenme patternleri, oýlanyşykly TTL/maýyplyk, stampede garşylyk, arassa açarlar we wersiýalar, şeýle hem gözegçilik we FinOps. Bu ýörelgelere eýerip, P95/P99 guýruklaryňyzy durnuklaşdyrarsyňyz, çeşmelere ýüküňizi azaltarsyňyz we önümiň we işewürligiň iň möhüm ýerinde millisekundyň öňünden aýdyp boljak bahasyny alarsyňyz.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.