Ofta glömmer utvecklare att ställa in ett utgångsdatum på nycklar, och redis börjar ta slut på minne. Även om du kan ställa in ett utgångsdatum för nyskapade nycklar, behöver du fortfarande ett sätt att ställa in ett utgångsdatum för nycklar som redan finns i minnet.
Detta kommando kommer att ställa in utgångsdatum för nycklar som matchar användare:*
Hur fungerar skriptet?
- Först använder vi
redis-cli --scan --pattern <pattern>
för att få en lista med nycklar, en nyckel per rad. - Vi kör sedan ett awk-skript för varje nyckel. Det här awk-skriptet är lite komplicerat, så vi kommer att bryta ner det
- Awk-skriptet har en kommandomall
expire __key__ 1000
. Detta är kommandot som körs för alla nycklar. - För varje matchande nyckel ersätter kommandot awk
__key__
med den faktiska nyckeln - Närnäst konverterar vi strängkommandot till redis-protokollformat. Det här är råformatet som redis förstår.
- Slutligen skickar vi råkommandona till redis-cli med hjälp av –pipe-flaggan. Detta är det mest effektiva sättet att skicka bulkkommandon till redis.
Anpassa detta skript
- Du kan anpassa
cmd_template
för att köra vilket som helst redis-kommando med en enda tangent mot flera nycklar som matchar ett mönster. - Redis-skanning tillåter endast glob-stilmönster, regex stöds inte. Så
users:*
kommer att matchausers:123
samtusers:123:favourites
. Du kan lägga in engrep
i pipelinen efter första redis-cli och före awk-skriptet. - Om din redis-server inte finns på localhost måste du ange värden, porten och lösenordet två gånger i kommandot, i princip när du anropar redis-cli.
Se även
- Byt namn på fält i en hash
- Byt namn på flera nycklar med Scan
- Ta bort nycklar som matchar ett mönster
- RDBTools GUI för Redis låter dig förhandsgranska dina bulkåtgärder och tillhandahåller ett kraftfullt GUI för att hantera data i Redis. Det är en gratis nedladdning!