sql >> Database >  >> NoSQL >> Redis

Meerdere sleutels hernoemen in Redis

Redis biedt geen opdracht om de naam van sleutels in redis bulksgewijs te wijzigen. Maar het is eenvoudig genoeg om een ​​script te maken met behulp van redis-cli en enkele opdrachtregelprogramma's.


Deze opdracht hernoemt de sleutels die overeenkomen met gebruikers:* naar klanten*:

Hoe werkt het script?

  1. Eerst gebruiken we redis-cli --scan --pattern <pattern> om een ​​lijst met sleutels te krijgen die moeten worden hernoemd. Aangezien we de scanopdracht gebruiken, blokkeert dit de redis-server niet.
  2. Vervolgens gebruiken we awk om tekenreeksvervanging uit te voeren en een nieuwe naam te genereren. Dit is de gsub(/users/,"customers", new_key) in het bash-commando
  3. Vervolgens gebruiken we genereer ons commando rename <old key> <new key> , maar om het efficiënt te maken, genereren we het in het redis-protocolformaat.
  4. Ten slotte sturen we het redis-protocol naar redis-cli met de --pipe optie. Dit is de meest efficiënte manier om een ​​stroom opdrachten naar de redis-server te sturen.

Dit script aanpassen

  1. Als uw redis-server niet op localhost staat, moet u tweemaal de host, poort en wachtwoord opgeven in het commando, eigenlijk wanneer je redis-cli aanroept.
  2. U moet het scanpatroon en de gsub-aanroep vervangen om aan uw behoeften te voldoen.

Zie ook

  • De naam van velden in een hash wijzigen
  • Vervaldatum instellen op meerdere sleutels
  • Sleutels verwijderen die overeenkomen met een patroon
  • Met de GUI van RDBTools voor Redis kunt u een voorbeeld van uw bulkacties bekijken en biedt een krachtige GUI om gegevens in Redis te beheren. Het is een gratis download!

  1. Databasebeveiliging 101:Toegangsrechten voor databases begrijpen

  2. Sidekiq vindt geen records voor Rails Active Job

  3. Is er een manier om een ​​specifieke sleutel te lokaliseren op een specifieke redis-instantie in clustermodus?

  4. Hoe voer ik Redis uit op Windows?