Redis
 sql >> база данни >  >> NoSQL >> Redis

Защо моят Redis Lua скрипт не може атомарно да актуализира ключовете на различни възли на Redis Cluster?

Опасявам се, че сте разбрали погрешно документацията. (И аз съм съгласен, че не е много ясно.)

Операциите на Redis, независимо дали са команди или Lua скриптове, могат да работят само когато всички ключове са на един и същ сървър. Целта на правилото за предаване на ключове е да позволи на клъстерните сървъри да разберат къде да изпратят скрипта и да се провалят бързо, ако всички ключове не идват от един и същ сървър (което се случи във вашия случай).

Така че ваша отговорност е да се уверите, че всички ключове, с които искате да работите, се намират на един и същ сървър. Начинът да направите това е да използвате хеш маркери за да принудите ключовете да хешират към същия слот. Вижте документацията за повече подробности относно това.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. python flask как да предаде динамичен параметър на декоратор

  2. Архитектура на микросервизи за много чест достъп до данни; в решения за памет?

  3. как да убия неактивни клиенти на redis

  4. spring-data-redis redisTemplate изключение

  5. Относно префикса char b в клиента на Python3.4.1 се свързва с redis