[PYTHON] Setzen Sie Expire auf Redis-Taste sofort

Einführung

Dies ist eine Methode, um Expire sofort hinzuzufügen, wenn die Anzahl der Redis-Schlüssel zu stark zunimmt.

Ich bin vorsichtig mit folgendem.

Die Liste der Schlüssel, die Sie hinzufügen möchten, läuft ab

Speichern Sie die mit Schlüsseln erhaltenen Daten in einer Datei

$ redis-cli -h {host} -n {database} keys "*" > keys

Grant läuft für Redis-Schlüssel ab

Greifen Sie nach einem bestimmten Schlüssel aus der Datei und fügen Sie expire hinzu

$ grep {expire_key_name} keys | python set_expires.py

set_expires.py


 # -*- coding: utf-8 -*-

import redis
import time
import sys
import random

EXPIRATION_SECONDS_MIN = 86400 * 10  #Der 10 ..
EXPIRATION_SECONDS_MAX = 86400 * 20  #Der 20 ..


def main():
    set_expire_keys()


def set_expire_keys():
    redis_cli = _create_client()
    pipe = redis_cli.pipeline()
    line_num = 0
    for line in sys.stdin:
        key_name = line.strip()
        #Trennen Sie Punkte mit Zufallszahlen, um zu verhindern, dass eine große Anzahl von Schlüsseln gleichzeitig verschwindet
        expiration_time = random.randint(EXPIRATION_SECONDS_MIN, EXPIRATION_SECONDS_MAX)
        pipe.expire(key_name, expiration_time)
        #Führen Sie alle 10.000 Schlüssel aus
        if line_num % 10000 == 0:
            print("{} lines proceeded.".format(line_num))
            pipe.execute()
            #Halten Sie unter Berücksichtigung der Belastung von Redis 3 Sekunden lang an
            time.sleep(3)
            pipe = redis_cli.pipeline()
        line_num += 1
    pipe.execute()
    print("{} lines proceeded.".format(line_num))
    print("complete!!")


def _create_client():
    redis_cli = redis.Redis(
        host="localhost",
        port=6379,
        db=1
        )
    return redis_cli


if __name__ == "__main__":
    main()

Recommended Posts

Setzen Sie Expire auf Redis-Taste sofort
Konvertieren Sie Memos sofort mit Python 2to3
So speichern Sie alle Instagram-Fotos auf einmal
Ein Befehl zum automatischen Aktualisieren der Pip-Bibliothek in einem Stapel
So richten Sie die Authentifizierung mit öffentlichem Schlüssel mit ssh ein
Anfänger versuchen, Word-Dateien sofort in PDF zu konvertieren
Die Geschichte, den privaten Schlüssel mit chmod auf 600 zu setzen