sql >> Databáze >  >> NoSQL >> Redis

Proč můj skript Redis Lua nemůže atomicky aktualizovat klíče na různých uzlech Redis Cluster?

Obávám se, že jste špatně pochopil dokumentaci. (A souhlasím, že to není příliš jasné.)

Operace Redis, ať už příkazy nebo skripty Lua, mohou fungovat pouze tehdy, když jsou všechny klíče na stejném serveru. Účelem pravidla předávání klíčů je umožnit klastrovým serverům zjistit, kam mají skript odeslat, a rychle selhat, pokud všechny klíče nepocházejí ze stejného serveru (což se stalo ve vašem případě).

Je tedy vaší odpovědností zajistit, aby všechny klíče, se kterými chcete pracovat, byly umístěny na stejném serveru. Způsob, jak toho dosáhnout, je použít hash tagy pro vynucení hash klíče do stejného slotu. Další podrobnosti naleznete v dokumentaci.




  1. Práce s klíči v redis

  2. Unikátní bodování pro redis leaderboard

  3. Jak používat proměnné ve funkci MongoDB Map-reduce map

  4. Redis nastavení TTL na klíčích hSet