Plánované úlohy
Stejný cron běží na každé instanci a zámek zajistí, že práci udělá právě jedna z nich.
Zajistěte, aby úlohu spouštěl vždy jen jeden worker, se zámky, které samy vyprší a jejich vlastník je bezpečně uvolňuje.
NX ho získá, jen pokud ho nikdo nedrží. PX 30000 způsobí, že za 30 sekund vyprší, kdyby A zemřel.
Animovaný průvodce se skutečnými příkazy HotKV a ukázkovými odpověďmi. Kliknutím na kterýkoli krok na něj přeskočíte. Příkazy a odpovědi zůstávají anglicky, přesně tak, jak je v HotKV zadáváte a vidíte.
Úlohy cron na několika strojích, zaúčtování plateb a přestavby cache se nesmějí spustit dvakrát najednou. Zámek bez expirace drží navždy, když jeho vlastník spadne, a uvolnění zámku prostým DEL může smazat cizí zámek poté, co ten váš vypršel.
SET s NX a PX získá zámek, jen pokud ho nikdo nedrží, a dá mu expiraci, takže spadlý vlastník ho nemůže držet navždy. Každý vlastník ukládá jako hodnotu náhodný token. DELEX s IFEQ zámek smaže, jen pokud stále obsahuje váš token, což je bezpečné uvolnění, které dřív vyžadovalo skript v Lua.
NX ho získá, jen pokud ho nikdo nedrží. PX 30000 způsobí, že za 30 sekund vyprší, kdyby A zemřel.
SET lock:billing-run tok-a81f NX PX 30000Zámek je držen, takže B dostane nil a tento běh přeskočí.
SET lock:billing-run tok-b22c NX PX 30000Fakturační úlohu spustí jen jeden worker.
PTTL lock:billing-runDELEX smaže klíč, jen pokud hodnota stále odpovídá tokenu A.
DELEX lock:billing-run IFEQ tok-a81fKdyby A byl příliš pomalý a zámek už držel B, uvolnění od A by zámek B nechalo na pokoji.
DELEX lock:billing-run IFEQ tok-staleStejný cron běží na každé instanci a zámek zajistí, že práci udělá právě jedna z nich.
Operace zaúčtování a vrácení u jedné objednávky se serializují, aby se nikdy nepřekrývaly.
Nákladnou položku cache přebuduje jen jeden požadavek, zatímco ostatní čekají nebo obslouží starou hodnotu.
SET NX PX získá zámek, jen pokud je volný, s timeoutem.
SETNXPXDELEX IFEQ smaže, jen pokud hodnota odpovídá vašemu tokenu.
DELEXZkontrolujte zbývající čas a u dlouhých úloh ho prodlužte.
PTTLPEXPIREU velkých hodnot DELEX IFDEQ porovnává digest místo celé hodnoty.
DIGESTIFDEQPokud váš zámek vypršel a převzal ho jiný worker, prosté DEL by smazalo jeho zámek. DELEX IFEQ ho smaže, jen dokud stále obsahuje váš token.
Delší, než úloha obvykle trvá. U dlouhých úloh expiraci pravidelně prodlužujte, dokud zámek držíte.
Ne. DELEX provede porovnání a smazání jedním příkazem.
HotKV mluví protokolem Redisu, takže na něj můžete nasměrovat stávajícího klienta a spustit tytéž příkazy.