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?
- 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. - 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 - 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. - 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
- 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.
- 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!