Должен ли MULTI работать на кластере Redis? - PullRequest
1 голос
/ 11 марта 2020

Я использую Redis на кластеризованной базе данных (локально). Я пробую команду MULTI, но кажется, что она не работает. Работают отдельные команды, и я вижу, как движется осколок.

Что еще мне нужно сделать, чтобы MULTI заработал? В документации неясно, должно ли это работать. https://redis.io/topics/cluster-spec

В приведенном ниже примере я просто устанавливаю отдельные ключи (обратите внимание, как изменяется порт = кластер), а затем пробую мультикоманду. Команда выполняется до того, как EXEC будет вызван

127.0.0.1:30001> set a 1
-> Redirected to slot [15495] located at 127.0.0.1:30003
OK
127.0.0.1:30003> set b 2
-> Redirected to slot [3300] located at 127.0.0.1:30001
OK
127.0.0.1:30001> MULTI
OK
127.0.0.1:30001> HSET c f val
-> Redirected to slot [7365] located at 127.0.0.1:30002
(integer) 1
127.0.0.1:30002> HSET c f2 val2
(integer) 1
127.0.0.1:30002> EXEC
(error) ERR EXEC without MULTI
127.0.0.1:30002> HGET c f
"val"
127.0.0.1:30002> 

1 Ответ

2 голосов
/ 11 марта 2020

MULTI транзакции, а также любые многоключевые операции поддерживаются только в пределах одного хэш-слота в кластерном развертывании Redis.

...