Vaak vergeten ontwikkelaars een vervaldatum voor sleutels in te stellen, en redis begint vol geheugen te raken. Hoewel je een vervaldatum kunt instellen voor nieuw gegenereerde sleutels, heb je nog steeds een manier nodig om een vervaldatum in te stellen voor sleutels die al in het geheugen zitten.
Deze opdracht stelt de vervaldatum in op sleutels die overeenkomen met gebruikers:*
Hoe werkt het script?
- Eerst gebruiken we
redis-cli --scan --pattern <pattern>
om een lijst met sleutels te krijgen, één sleutel per regel. - Vervolgens voeren we een awk-script uit voor elke sleutel. Dit awk-script is een beetje ingewikkeld, dus we zullen het opsplitsen
- Het awk-script heeft een opdrachtsjabloon
expire __key__ 1000
. Dit is de opdracht die voor alle sleutels wordt uitgevoerd. - Voor elke overeenkomende sleutel vervangt het awk-commando
__key__
met de eigenlijke sleutel - Vervolgens converteren we de tekenreeksopdracht naar het redis-protocolformaat. Dit is het onbewerkte formaat dat redis begrijpt.
- Ten slotte pipen we de onbewerkte commando's naar redis-cli met behulp van de vlag –pipe. Dit is de meest efficiënte manier om bulkcommando's naar redis te sturen.
Dit script aanpassen
- U kunt
cmd_template
aanpassen om een enkele toets redis-opdracht uit te voeren tegen meerdere toetsen die overeenkomen met een patroon. - Redis-scan laat alleen glob-stijlpatronen toe, regex wordt niet ondersteund. Dus
users:*
komt overeen metusers:123
evenalsusers:123:favourites
. Je kunt eengrep
. invoeren in de pijplijn na de eerste redis-cli en vóór het awk-script. - 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.
Zie ook
- De naam van velden in een hash wijzigen
- Meerdere toetsen hernoemen met Scan
- 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!