首页 > 数据库 >python 批量删除 redis 大量数据

python 批量删除 redis 大量数据

时间:2023-06-27 11:35:24浏览次数:35  
标签:批量 python redis cursor keys other time counts delete

#!/usr/bin/env python
# Scan and delete keys in Redis.
# Author: cdfive
from redis import Redis
import time


def RedisScanAndDelete(host, port, password, db, cursor, pattern, count, batch_delete_size):
    start_time = time.time()
    client = Redis(host=host, port=port, password=password, db=db)
    counts, other_cursor_counts = 0, 0
    delete_keys = []
    while True:
        cursor, keys = client.scan(cursor, pattern, count)
        length = len(keys)
        if length > 0:
            index = 0
            for key in keys:
                index += 1
                counts += 1
                print("[%s][%s]%s,cursor=%s" % (
                    int(time.time() - start_time), counts, key.decode("utf-8"), cursor))

                delete_keys.append(key)
                if (len(delete_keys) >= batch_delete_size or index >= length) and len(delete_keys) > 0:
                    client.delete(*delete_keys)
                    delete_keys = []
        else:
            other_cursor_counts += 1
            print("[%s][other_curosr]other_cursor_counts=%s,cursor=%s" % (
                int(time.time() - start_time), other_cursor_counts, cursor))

        if cursor == 0:
            break
    client.close()
    print("[%s]counts=%s,cursor=%s,other_cursor_counts=%s"
          % (int(time.time() - start_time), counts, cursor, other_cursor_counts))


RedisScanAndDelete("localhost", 6379, "123456", 0, 0, "*xxx*", 1000, 100)

参考教程:https://blog.51cto.com/u_56701/6473475

标签:批量,python,redis,cursor,keys,other,time,counts,delete
From: https://www.cnblogs.com/xuchunlin/p/17508228.html

相关文章

  • python:一行代码读写文件
    1、读取文件lst=[line.strip()forlineinopen('data.txt')]print(lst)这里我们使用列表来处理。首先,我们打开一个文本文件,并使用for循环,逐行读取。最后,使用strip删除所有不必要的空间。通过使用列表功能,使得代码更简单,更短。list(open('data.txt'))##Usingwithwi......
  • Java使用redis-Redis是并发安全的吗?
    大家都清楚,Redis 是一个开源的高性能键值对存储系统,被开发者广泛应用于缓存、消息队列、排行榜、计数器等场景。由于其高效的读写性能和丰富的数据类型,Redis 受到了越来越多开发者的青睐。然而,在并发操作下,Redis 是否能够保证数据的一致性和安全性呢?接下来小岳将跟大家一起来探......
  • redis-分布式锁注意事项
    lockKey:商品标识value:当前线程标识1.确保每把锁同一时间能且仅能上一次setnx(setifnotexists):当锁不存在时才上锁redisTemplate.opsForValue().setIfAbsent(lockKey,value)没加上锁需要返回错误码直接让其重试2.上锁成功后,需要在之后将锁释放redisTemplate.delete(l......
  • Python -Flask HTML <img 显示本地图片失败,怎么破?
    大家好,我是皮皮。一、前言前几天在Python白银群【膨】问了一个Flask图片显示的问题,这里拿出来给大家分享下。运行之后图片加载不出来。二、实现过程这里【此类生物】给了一个思路,flask运行当前路径是主程序路径,把图片路径改成绝对路径。结果页面还是加载不出来。后来以......
  • 如何利用python做爬虫?
    Python爬虫在许多情况下是非常有用的,爬虫可以帮助自动化地从互联网上获取大量数据。这些数据可以是产品信息、新闻文章、社交媒体内容、股票数据等通过爬虫可以减少人工收集和整理数据的工作量,提高效率。在软件开发中,可以使用爬虫来进行自动化的功能测试、性能测试或页面链接检查......
  • python全栈开发查询目录
     python全栈开发查询目录(私有状态具体内容暂不支持访问)  第一模块:Python基础&基础数据类型第1章:计算机基础和环境搭建-cnblog第2章:快速上手-cnblog第3章:python基础-cnblog第4章:进制和编码-cnblog第5章:数据类型之int、bool、str-cnblog第6章:数据类型之list、tuple-c......
  • python源码结构
    在Python中,源文件通常以.py为扩展名,并且可以按照一定的结构进行组织。下面是一个典型的Python源文件的结构示例:1#-*-coding:utf-8-*-23"""模块的文档字符串"""45#导入语句6importmodule17frommodule2importfunc1,func28frommodule3import*......
  • QT实现参数批量配置
    QT实现批量配置需求一些参数需要批量化配置之前搭建的FPGA的寄存器控制模型使用AXI-lite搭建直接操作上位机这里需要一个可以快速配置所有参数的上位机需要保存文件,可以保留上一次的参数直接实现使用输入框复制,每个输入框配置一个下载按钮加载的时间很长,且实现繁......
  • Python数据预处理
    1数据的生成与导入这里主要使用的pandasimportpandasaspd#加载excel数据df_excel=pd.read_excel('')df_excel.head()#加载text数据df_text=pd.read_table('')df_text.head()#加载csv数据df_csv=pd.read_csv('')df_csv.head()2读取多个数据并合并importglobg......
  • python发展史及python应用场景
    python发展史 Python的发展可以分为以下几个阶段:Python1.x(1994-2000):这个阶段是Python发展的初期,主要特点是语言简单易学,它可以很好地操作文本和文件,并且具有很好的扩展性,允许在Python中嵌入其他语言的代码。Python2.x(2000-2010):这个阶段是Python发展的中......