#!/usr/bin/env python import redis import os REDIS_HOST = os.getenv("REDIS_HOST", "localhost") REDIS_PORT = 6379 REDIS_SSL = True REDIS_DB = 0 REDIS_ARTIST_PATTERN = os.getenv("REDIS_ARTIST_PATTERN", "ows-dmp:artist:*") BATCH_SIZE = 100000 def main() -> None: """Delete all artist cache from redis.""" print("Deleting all artist cache from redis...") # Connect to redis client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB, ssl=REDIS_SSL) print(f"Connected to redis {REDIS_HOST}.") delete_keys = [] # Scan all keys matching the pattern and delete them in batches for key in client.scan_iter(REDIS_ARTIST_PATTERN, count=BATCH_SIZE): delete_keys.append(key) if len(delete_keys) >= BATCH_SIZE: print(f"Deleting {len(delete_keys)} keys...") client.delete(*delete_keys) delete_keys = [] print(f"Deleting {len(delete_keys)} keys...") if delete_keys: client.delete(*delete_keys) print("Closing connection to redis...") client.close() print("Done.") if __name__ == "__main__": main()