栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis使用pipline批量删除key

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis使用pipline批量删除key

# coding:utf-8
import sys
from rediscluster import RedisCluster


def get_redis_nodes(redis_hosts):
    host_split = redis_hosts.split(",")
    redis_nodes = []
    for host in host_split:
        arr = host.split(":")
        dict = {"host": arr[0], "port": arr[1]}
        if(not redis_nodes.__contains__(dict)):
        # if (dict not in redis_nodes):
            redis_nodes.append(dict)
    return redis_nodes


def connect(startup_nodes):
    redis_cluster = RedisCluster(
        startup_nodes=startup_nodes,
        decode_responses=True,
        # readonly_mode=True,
        # Needed for Elasticache Clusters
        skip_full_coverage_check=True)
    return redis_cluster


def del_kes_batch(redis_nodes, redis_key):
    redis_cluster_db = connect(redis_nodes)
    data = redis_cluster_db.scan_iter(match=redis_key, count=50000)
    with redis_cluster_db.pipeline(transaction=False) as pipe:
        for key in data:
            print(key)
            pipe.delete(key)
        try:
            pipe.execute()
        except Exception as e:
            print(e)


if __name__ == '__main__':
    redis_hosts = sys.argv[1]
    redis_keys = sys.argv[2]
    redis_nodes = get_redis_nodes(redis_hosts)
    del_kes_batch(redis_nodes,redis_keys)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号