[PYTHON] Définissez Expire sur la clé Redis à la fois

introduction

C'est une méthode pour ajouter Expire à la fois lorsque le nombre de clés Redis augmente trop.

Je fais attention à ce qui suit.

Obtenez la liste des clés que vous souhaitez ajouter expirer

Sauvegarder les données obtenues avec les clés dans un fichier

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

La subvention expire à la clé Redis

Grep une clé spécifique du fichier et ajouter expire

$ 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  #Le 10
EXPIRATION_SECONDS_MAX = 86400 * 20  #Le 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()
        #Séparez les périodes avec des nombres aléatoires pour éviter qu'un grand nombre de clés ne disparaisse à la fois
        expiration_time = random.randint(EXPIRATION_SECONDS_MIN, EXPIRATION_SECONDS_MAX)
        pipe.expire(key_name, expiration_time)
        #Exécuter toutes les 10000 clés
        if line_num % 10000 == 0:
            print("{} lines proceeded.".format(line_num))
            pipe.execute()
            #Arrêtez-vous pendant 3 secondes compte tenu de la charge sur Redis
            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

Définissez Expire sur la clé Redis à la fois
Convertir un mémo à la fois avec Python 2to3
Comment enregistrer toutes les photos Instagram à la fois
Une commande pour mettre à jour automatiquement la bibliothèque pip dans un batch
Comment configurer l'authentification par clé publique avec SSH
Les débutants essaient de convertir des fichiers Word en PDF à la fois
L'histoire de la définition de la clé privée à 600 avec chmod