Отговорите на този въпрос се опитват да премахнат няколко ключа в един DEL
. Въпреки това, ключовете, съответстващи на дадения шаблон, може да НЕ се намират в един и същ слот и Redis Cluster НЕ поддържа команда с множество клавиши, ако тези ключове не принадлежат на един и същ слот. Ето защо получавате съобщението за грешка.
За да отстраните този проблем, трябва да DEL
тези клавиши един по един:
redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
-L
опция за xargs
командата определя броя на ключовете за изтриване. Трябва да посочите тази опция като 1
.
За да премахнете всички ключове, съответстващи на шаблона, трябва също да изпълните горната команда за всеки главен възел във вашия клъстер.
ЗАБЕЛЕЖКА
-
С тази команда трябва да изтриете тези ключове един по един и това може да е много бавно. Трябва да помислите за препроектиране на вашата база данни и да използвате хеш маркери за да накарате клавишите, съответстващи на шаблона, да принадлежат на един и същи слот. За да можете да премахнете тези ключове с един
DEL
. -
Или
SCAN
илиKEYS
командите са неефективни, особеноKEYS
не трябва да се използва в производството. Трябва да обмислите изграждането на индекс за тези ключове.