sql >> Database >  >> NoSQL >> Redis

Hoe de vervaldatum in te stellen op meerdere sleutels in Redis

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?

  1. Eerst gebruiken we redis-cli --scan --pattern <pattern> om een ​​lijst met sleutels te krijgen, één sleutel per regel.
  2. Vervolgens voeren we een awk-script uit voor elke sleutel. Dit awk-script is een beetje ingewikkeld, dus we zullen het opsplitsen
  3. Het awk-script heeft een opdrachtsjabloon expire __key__ 1000 . Dit is de opdracht die voor alle sleutels wordt uitgevoerd.
  4. Voor elke overeenkomende sleutel vervangt het awk-commando __key__ met de eigenlijke sleutel
  5. Vervolgens converteren we de tekenreeksopdracht naar het redis-protocolformaat. Dit is het onbewerkte formaat dat redis begrijpt.
  6. 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

  1. U kunt cmd_template aanpassen om een ​​enkele toets redis-opdracht uit te voeren tegen meerdere toetsen die overeenkomen met een patroon.
  2. Redis-scan laat alleen glob-stijlpatronen toe, regex wordt niet ondersteund. Dus users:* komt overeen met users:123 evenals users:123:favourites . Je kunt een grep . invoeren in de pijplijn na de eerste redis-cli en vóór het awk-script.
  3. 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!

  1. Hoe update ik velden van documenten in mongo db met behulp van het java-stuurprogramma?

  2. hoe relaties veel op velen te hebben in redis

  3. Node.js Redis Connection Pooling

  4. Indexeren met Redis gesorteerde sets