Průvodce ukládáním odpovědí do mezipaměti a integrací CDN

Optimalizujte výkon Smart Money API pomocí inteligentních strategií ukládání do mezipaměti. Naučte se používat hlavičky HTTP mezipaměti, validaci ETag, integraci CDN a vzory ukládání do mezipaměti na straně klienta, abyste snížili latenci a náklady na šířku pásma.

Publikováno 21. března 2026 16 minut čtení Výkon

Přehled ukládání do mezipaměti

Koncové body Smart Money API poskytují data o trhu s kryptoměnami, která se mění v různých frekvencích. Některá data (velrybí adresy, funding rates) se aktualizují každých několik sekund, zatímco jiná data (historická analýza, vzdělávací obsah) zůstávají statická po celé hodiny. Inteligentní ukládání do mezipaměti výrazně zlepšuje výkon a snižuje náklady.

Smart Money API implementuje třívrstvou strategii ukládání do mezipaměti:

  • Mezipaměť CDN Edge — Globální doručování obsahu s automatickým zneplatněním mezipaměti
  • HTTP mezipaměť prohlížeče — Ukládání do mezipaměti na straně klienta pomocí standardních HTTP hlaviček
  • Aplikační mezipaměť — Mezipaměť v paměti pro často přistupované datové sady

Přehled výkonu: Odpovědi z mezipaměti jsou 50-100krát rychlejší než nové požadavky na API a výrazně šetří šířku pásma. Správně nakonfigurovaná integrace s mezipamětí může snížit přenos dat o 70-85 %.

Každá odpověď Smart Money API obsahuje direktivy mezipaměti, které říkají klientům a CDN, jak dlouho zůstávají data platná. Porozumění těmto direktivám a jejich správná implementace jsou klíčové pro optimální výkon.

Základy ukládání do mezipaměti

HTTP ukládání do mezipaměti funguje na základě hlaviček odpovědí, které určují, zda lze obsah ukládat do mezipaměti a na jak dlouho.

Hlavička Cache-Control

Primární mechanismus pro řízení chování mezipaměti. Každá odpověď Smart Money API obsahuje hlavičku Cache-Control, která specifikuje:

  • max-age — Doba v sekundách, po kterou zůstává odpověď platná
  • public/private — Zda mohou mezipaměti ukládat odpověď
  • must-revalidate — Zda je nutné před podáním ověřit aktuálnost
  • no-store — Neukládat citlivá data

Příklady hlaviček mezipaměti

Různé koncové body mají různé požadavky na mezipaměť:

Hlavičky odpovědí
// Data o velrybích adresách (aktualizace každých 5 minut)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Data o real-time funding rates (aktualizace každou sekundu)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Historická data (nemění se)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"

Doba ukládání do mezipaměti podle typu koncového bodu

Typ dat Doba ukládání do mezipaměti Případ použití
Real-time Funding 1-5 sekund Live obchodování, velikost pozice
Whale Movements 5 minut Potvrzení signálu, upozornění
Daily OHLCV 1 hodina Technická analýza, grafy
Historical Analysis 24 hodin Backtesting, výzkum
Static Content 7 dní Dokumentace API, průvodci, konfigurace
Získejte svůj API klíč za 30 sekund

Jste připraveni začít? Získejte zdarma API klíč (200 volání/den, bez karty) a začněte stahovat data o velrybách, funding rates a on-chain datech.

Získejte svůj API klíč →

HTTP hlavičky mezipaměti

Odpovědi Smart Money API obsahují několik hlaviček souvisejících s mezipamětí, které spolupracují na maximalizaci výkonu při zachování aktuálnosti dat.

Cache-Control: Hlavní hlavička

Řídí chování mezipaměti pro prohlížeče a mezilehlé mezipaměti:

Direktivy Cache-Control
// Veřejná data, uložena na 5 minut
Cache-Control: public, max-age=300
// Soukromá data, uložena pouze v prohlížeči
Cache-Control: private, max-age=3600
// Neměnný obsah, uložen navždy
Cache-Control: public, max-age=31536000, immutable
// Vždy ověřit aktuálnost před podáním
Cache-Control: public, max-age=0, must-revalidate
// Neukládat citlivá data
Cache-Control: private, no-store, no-cache

Hlavička Expires (zastaralá)

Pro starší klienty Smart Money poskytuje také hlavičku Expires (HTTP/1.0):

Hlavička Expires
// Absolutní čas vypršení platnosti
Expires: Wed, 22 Mar 2026 14:30:00 GMT
// V HTTP/1.1 má přednost max-age z Cache-Control

Hlavička Last-Modified

Udává, kdy byl obsah naposledy aktualizován, což umožňuje podmíněné požadavky:

Použití Last-Modified
// Odpověď obsahuje Last-Modified
Last-Modified: Wed, 21 Mar 2026 10:15:30 GMT
// Klient ověřuje pomocí If-Modified-Since
If-Modified-Since: Wed, 21 Mar 2026 10:15:30 GMT
// Pokud se nezměnil, server odpoví 304 Not Modified
HTTP/1.1 304 Not Modified

Hlavička Vary

Říká mezipamětím, které hlavičky požadavku ovlivňují odpověď (autentizace, parametry):

Hlavička Vary
// Odpověď se mění podle autentizace a symbolů
Vary: Authorization, X-Symbols
// Mezipaměti ukládají samostatné verze pro různé hodnoty

ETag a podmíněné požadavky

ETagy (Entity Tags) poskytují efektivní způsob ověření obsahu mezipaměti bez nutnosti stahovat celé tělo odpovědi.

Jak ETagy fungují

  1. Počáteční požadavek — Klient požaduje data, server odpoví s ETag
  2. Uložení do mezipaměti — Klient uloží odpověď s ETag
  3. Následný požadavek — Klient odešle hlavičku If-None-Match s uloženou hodnotou ETag
  4. Validace — Pokud se data nezměnila, server vrátí 304 Not Modified
  5. Ušetřená šířka pásma — Tělo odpovědi není odesláno, výrazné úspory šířky pásma

Implementace ETag

Počáteční požadavek a odpověď
// První požadavek
GET /v1/whales/btc HTTP/1.1
// Odpověď obsahuje ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
Podmíněná revalidace
// Po vypršení platnosti mezipaměti odešlete If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Pokud se data nezměnila, server odpoví 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Tělo odpovědi není odesláno! Ušetřená šířka pásma

Síla ETag

ETagy mohou být silné nebo slabé:

Typ Formát Použití
Silný ETag "8a3b9c2d" Bajtově identické, používá se pro validaci
Slabý ETag W/"8a3b9c2d" Sémanticky ekvivalentní, pro změny zobrazení

Direktivy Cache Control

Porozumění direktivám Cache-Control umožňuje vytvářet optimální strategie ukládání do mezipaměti pro vaši aplikaci.

Referenční direktivy

Direktiva Význam Příklad
max-age Počet sekund, po které je odpověď čerstvá max-age=300
public Mezipaměť může ukládat a sdílet public
private Mezipaměť pouze pro příjemce private
must-revalidate Revalidovat, když je zastaralá must-revalidate
no-cache Před použitím je nutné revalidovat no-cache
no-store Neukládat do mezipaměti vůbec no-store
immutable Nikdy se nemění, ukládat do mezipaměti navždy immutable
s-maxage Doba ukládání do mezipaměti CDN s-maxage=3600

Praktické vzory Cache-Control

Běžné vzory
// Vzor 1: Mezipaměť prohlížeče, CDN na 1 hodinu
Cache-Control: public, max-age=300, s-maxage=3600
// Vzor 2: Data pro jednotlivé uživatele, žádná proxy mezipaměť
Cache-Control: private, max-age=1800
// Vzor 3: Vždy čerstvé, vždy kontrolovat
Cache-Control: public, no-cache, must-revalidate
// Vzor 4: Neměnný verzovaný asset
Cache-Control: public, max-age=31536000, immutable

Integrace CDN

Smart Money API doručuje odpovědi prostřednictvím globální sítě CDN Cloudflare, automaticky ukládá odpovědi do mezipaměti na edge lokacích po celém světě pro minimální latenci.

Jak funguje Smart Money CDN

  1. Požadavek uživatele — Požadavek dorazí na nejbližší edge lokaci Cloudflare
  2. Kontrola mezipaměti — Edge zkontroluje, zda je odpověď v mezipaměti a je čerstvá
  3. Zásah do mezipaměti — Pokud je v mezipaměti, okamžitě doručit s latencí <10ms
  4. Minutí mezipaměti — Pokud není v mezipaměti, načíst ze zdrojového serveru
  5. Uložení a doručení — Uložit odpověď do mezipaměti a doručit uživateli

Konfigurace klíče mezipaměti

Cloudflare používá klíče mezipaměti k jednoznačné identifikaci uložených odpovědí. Ve výchozím nastavení:

  • Cesta požadavku a parametry dotazu jsou zahrnuty
  • Většina hlaviček je ignorována (pro maximalizaci zásahů do mezipaměti)
  • Autorizační hlavičky NEJSOU zahrnuty (žádný únik účtů)
  • Vlastní hlavičky lze zahrnout prostřednictvím hlavičky Vary

Pročištění CDN

Smart Money automaticky pročišťuje mezipaměť CDN při aktualizaci dat:

Ruční pročištění mezipaměti
// Pročištění konkrétní URL z CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'

Měření výkonu CDN

Zkontrolujte hlavičky odpovědi, zda byl požadavek obsloužen z mezipaměti:

Hlavičky odpovědi
// Zásah do mezipaměti CDN edge
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // sekund od uložení do mezipaměti
// Minutí mezipaměti, načteno ze zdrojového serveru
CF-Cache-Status: MISS
Age: 0

Ukládání do mezipaměti na straně klienta

Implementujte ukládání do mezipaměti ve vaší aplikaci, abyste dále snížili počet volání API a zlepšili rychlost odezvy.

Implementace mezipaměti prohlížeče

Ukládání do mezipaměti v JavaScriptu
// Vytvoření úložiště mezipaměti
const cache = new Map();
async function fetchWithCache(url) {
// Nejprve zkontrolujte mezipaměť
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Načtěte z API
const response = await fetch(url);
const data = await response.json();
// Analyzujte dobu platnosti mezipaměti z hlaviček
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Uložte do mezipaměti
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}

Service Worker Caching

Pro podporu offline režimu a pokročilé strategie ukládání do mezipaměti použijte Service Workers:

Service Worker
// Ukládání odpovědí API pomocí Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
Nejprve síť, poté záložní mezipaměť
event.respondWith(
fetch(event.request)
.then(response => {
Aktualizujte mezipaměť čerstvou odpovědí
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});

Strategie pro vynucení aktualizace mezipaměti

Někdy je potřeba přinutit klienty, aby získali čerstvá data. Použijte tyto techniky:

Parametr verze

Přidejte parametr verze, aby se mezipaměť zneplatnila při změně dat:

URL s verzí
// Zahrňte verzi dat nebo časové razítko
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Když se data aktualizují, zvýšte verzi
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Nová URL = nový záznam v mezipaměti

Vynucení revalidace

Přepište mezipaměť pomocí Cache-Control: no-cache, když potřebujete čerstvá data:

Vynucení čerstvých dat
// JavaScript: Vynucení čerstvého požadavku
fetch(url, {
cache: 'no-cache', // Vždy revalidovat
headers: {
'Cache-Control': 'max-age=0'
}
});

Sledování výkonu mezipaměti

Sledujte míru zásahů do mezipaměti a zlepšení výkonu, abyste ověřili svou strategii ukládání do mezipaměti.

Metriky mezipaměti ke sledování

  • Míra zásahů — Procento požadavků obsloužených z mezipaměti (cíl: >70 %)
  • Doba odezvy — Průměrná latence (mezipaměť: <50 ms, bez mezipaměti: 100-300 ms)
  • Ušetřená šířka pásma — Snížení přenosu dat
  • Zatížení původního serveru — Snížení počtu požadavků na původní server

Analýza hlaviček mezipaměti

Skript pro analýzu mezipaměti
// Analyzujte hlavičky odpovědí mezipaměti
async function analyzeCache(url) {
const response = await fetch(url);
return {
cacheControl: response.headers
.get('cache-control'),
etag: response.headers.get('etag'),
age: response.headers.get('age'),
cfStatus: response.headers
.get('cf-cache-status'),
contentLength:
response.headers.get('content-length')
};
}

Doporučené postupy pro ukládání do mezipaměti

1. Respektujte hlavičky odpovědí

Vždy respektujte hlavičky Cache-Control od Smart Money API. Neukládejte obsah označený jako no-store nebo no-cache.

2. Implementujte podmíněné požadavky

Odesílejte hlavičky If-None-Match (ETag) a If-Modified-Since při revalidaci obsahu v mezipaměti. Šetřete šířku pásma pomocí odpovědí 304.

3. Ukládejte do mezipaměti podle typu dat

  • Data v reálném čase (funding rates): maximálně 1-5 sekund
  • Živé signály (pohyby velryb): 5-30 sekund
  • Hodinová data (OHLCV): 1 hodina
  • Historická data: 24 hodin
  • Statický obsah: 7 dní

4. Sledujte efektivitu mezipaměti

Sledujte míru zásahů a zlepšení latence. Upravte TTL na základě požadavků na čerstvost dat a výkonu mezipaměti.

5. Používejte hlavičky Vary opatrně

Hlavičky Vary snižují míru zásahů vytvářením samostatných záznamů v mezipaměti. Používejte je pouze v případě potřeby pro různé úrovně ověření nebo parametry.

6. Ukládejte do mezipaměti na více úrovních

Implementujte ukládání do mezipaměti na úrovni CDN, prohlížeče a aplikace. Každá úroveň zachytí požadavky před dosažením původního serveru.

Optimalizujte výkon vašeho API

Infrastruktura ukládání do mezipaměti Smart Money API zajišťuje odpovědi pod 100 ms v globálním měřítku. Implementujte inteligentní strategie ukládání do mezipaměti, abyste maximalizovali výkon a minimalizovali náklady.

Porovnejte plány
Všechny plány zahrnují plné ukládání do mezipaměti CDN. Vyšší úrovně poskytují API pro správu a čištění mezipaměti.

Související zdroje

Začněte zdarma — 200 volání/den, bez karty

Získejte živý tok velryb, financování, otevřený zájem a on-chain data napříč 3 burzami z jednoho API. Bezplatná úroveň, bez kreditní karty, upgrade kdykoli.

Začněte zdarma →
Vyzkoušejte živou konzoli API → (účet není potřeba)