Odpowiedzi na to pytanie próbują usunąć wiele kluczy w jednym DEL
. Jednak klucze pasujące do podanego wzorca mogą NIE znajdować się w tym samym gnieździe, a klaster Redis NIE obsługuje poleceń z wieloma klawiszami, jeśli te klucze nie należą do tego samego gniazda. Dlatego pojawia się komunikat o błędzie.
Aby rozwiązać ten problem, musisz DEL
te klawisze jeden po drugim:
redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
-L
opcja dla xargs
polecenie określa liczbę kluczy do usunięcia. Musisz określić tę opcję jako 1
.
Aby usunąć wszystkie klucze pasujące do wzorca, musisz również uruchomić powyższe polecenie dla każdego węzła głównego w klastrze.
UWAGA
-
Za pomocą tego polecenia musisz usuwać te klucze jeden po drugim, a to może być bardzo powolne. Musisz rozważyć przeprojektowanie swojej bazy danych i użyć hash-tagów aby klucze pasujące do wzoru należały do tego samego gniazda. Aby można było usunąć te klucze w jednym
DEL
. -
Albo
SCAN
lubKEYS
polecenia są nieefektywne, zwłaszczaKEYS
nie powinien być używany w produkcji. Musisz rozważyć utworzenie indeksu dla tych kluczy.