Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak zbiorczo usunąć setki tysięcy kluczy ze znakami specjalnymi w Redis?

Oto jak to rozwiązałem, działa to z milionami rekordów bez obciążania redis.

WARNING: PLEASE DO NOT TRY THIS AT HOME UNATTENDED AND MAKE SURE TO WEAR 
ALL SAFETY EQUIPMENT NECESSARY FOR THE TASK.

Krok 1. Zrzuć wszystkie potrzebne klucze z redis do pliku, nazwijmy ten plik YES_WE_CAN.sh

redis-cli KEYS "StartsWith*" > YES_WE_CAN.sh

Krok 2: Otwórz plik YES_WE_CAN.sh za pomocą vi lub vim i naciśnij : znak, a następnie wpisz następujący znak, aby zastąpić znak specjalny ' :

:%s/'/'"'"'/g

To zastąpi wszystkie ' znaki z '"'"' sekwencja ewakuacyjna. (Zaufaj mi, to działa, kontynuuj!)

Krok 3: Dołącz do każdego ciągu redis-cli DEL (nie zapomnij o spacji na końcu):

:%s/^/redis-cli DEL /g

Krok 4: Dołącz na końcu każdego wiersza ' charakter:

:%s/$/'/g

Krok 5: Zapisz plik i wyjdź za pomocą :wq

Krok 6: Zmień plik YES_WE_CAN.sh do trybu wykonywalnego:

chmod +x YES_WE_CAN.sh

Krok 7: Uruchom plik:

./YES_WE_CAN.sh

Ciesz się kawą, podczas gdy skrypt usuwa miliony żądanych kluczy.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Konfigurowanie redis, aby najpierw konsekwentnie eksmitować starsze dane

  2. Zliczanie użytkowników socket.io na serwerach poziomych

  3. Czy Redis TimeSeries to właściwe narzędzie do rejestrowania świec w cenach akcji?

  4. Uzyskaj wartość zestawu z Redis za pomocą RedisTemplate

  5. Problem z połączeniem Docker compose spring boot redis