← Cloudflare Workers KV / kv / koncepty
Jak KV funguje
KV je globální úložiště dat typu klíč-hodnota s nízkou latencí. Data ukládá v malém počtu centralizovaných datových center a po přístupu je pak ukládá do mezipaměti v datových centrech Cloudflare.
KV zvládá výjimečně vysoké objemy čtení s nízkou latencí, což díky vestavěné mezipaměti a globální distribuci KV umožňuje vytvářet dynamická API, která dobře škálují. Požadavky, které nejsou v mezipaměti a musí přistupovat k centrálním úložištím, mohou mít vyšší latenci.
Zápis dat do KV a čtení dat z KV
Když zapisujete do KV, vaše data se zapisují do centrálních úložišť dat. Data se automaticky neodesílají do mezipaměti každé lokality.
První čtení z daného místa nemá k dispozici žádnou hodnotu v mezipaměti. Data se musí načíst z nejbližší regionální úrovně, poté z centrální úrovně a v krajním případě, při skutečně chladném globálním čtení, až z centrálních úložišť. První přístup je globálně pomalý, ale další požadavky jsou rychlejší, zejména pokud se soustředí do jednoho regionu.
Časté čtení ze stejného místa vrací uloženou hodnotu z mezipaměti, aniž by bylo nutné číst jinde, což přináší nejrychlejší odezvy. KV na pozadí pečlivě aktualizuje hodnoty v mezipaměti tím, že je před vypršením platnosti obnovuje z vyšších úrovní mezipaměti a centrálních datových úložišť.
Obnovování z vyšších úrovní a centrálních úložišť dat probíhá na pozadí opatrně, aby obsah, ke kterému právě probíhá přístup, byl i nadále bez přerušení obsluhován z mezipaměti.
KV je optimalizováno pro aplikace s vysokým podílem čtení. Data ukládá centrálně a k jejich uložení do mezipaměti používá hybridní replikaci typu push/pull. KV se hodí pro případy, kdy potřebujete zapisovat poměrně zřídka, ale číst rychle a často. Zřídka čtené hodnoty se stahují z jiných datových center nebo centrálních úložišť, zatímco oblíbenější hodnoty se uchovávají v mezipaměti v datových centrech, ze kterých jsou vyžádány.
Výkon
Chcete-li zlepšit výkon KV, zvyšte cacheTtl parametr oproti výchozím 60 sekundám.
KV dosahuje vysokého výkonu díky tomu, že ukládání do mezipaměti ↗ díky čemuž jsou čtení eventuálně konzistentní se zápisy.
Změny jsou obvykle okamžitě viditelné v té lokalitě globální sítě Cloudflare, kde byly provedeny. V ostatních lokalitách globální sítě se mohou projevit až za 60 sekund nebo déle, dokud nevyprší platnost jejich verzí dat v cache.
Do mezipaměti se ukládají i negativní vyhledávání signalizující, že klíč neexistuje, takže při zjištění vytvoření hodnoty dochází ke stejnému zpoždění jako při její změně.
Konzistence
KV dosahuje vysokého výkonu díky tomu, že je eventuálně konzistentní. V místě globální sítě Cloudflare, kde ke změně dojde, je tato změna obvykle viditelná okamžitě. Není to však zaručeno, a proto se na toto chování nedoporučuje spoléhat. V ostatních místech globální sítě se změna může projevit až po 60 sekundách nebo déle, než vyprší platnost jejich uložených verzí dat v mezipaměti.
V lokalitách, které nedávno četly předchozí verzi daného klíče, se změny projeví se zpožděním (to platí i pro čtení, která signalizovala, že klíč neexistuje, protože i ta se ukládají do místní mezipaměti).
Jedním z přístupů k zajištění konzistence write-after-write je posílat všechny zápisy pro daný klíč KV přes odpovídající instanci Durable Object a hodnotu pak z KV číst v ostatních Workers. To se hodí, pokud potřebujete větší kontrolu nad zápisy, ale vlastnosti čtení KV popsané výše vám jinak vyhovují.
Pokyny
Workers KV je edge úložiště typu klíč-hodnota s eventuální konzistencí. Díky tomu je ideální pro s převahou čtení, vysoce cachovatelné úlohy, jako jsou:
- Poskytování statických souborů
- Ukládání konfigurace aplikace
- Ukládání uživatelských předvoleb
- Implementace povolovacích a zakazovacích seznamů
- Ukládání do mezipaměti
V těchto scénářích se Workers spouští v datovém centru nejbližším uživateli a data Workers KV se pro další požadavky uloží do mezipaměti v daném regionu, aby se minimalizovala latence.
Pokud máte s převahou zápisu Redis ↗-ové zátěže, kdy aktualizujete stejný klíč desítky až stovky krát za sekundu, nebude KV ideálním řešením. Pokud můžete přehodnotit způsob, jakým vaše aplikace zapisuje do jednotlivých párů klíč-hodnota, a rozložit zápisy mezi několik samostatných klíčů, může vám Workers KV vyhovovat. Alternativně, Durable Objects poskytuje key-value API s vyššími limity počtu zápisů na klíč.
Security
Viz Dokumentace k zabezpečení dat k pochopení toho, jak Workers KV zabezpečuje data.