python redis 批量设置过期key过程解析


Posted in Python onNovember 26, 2019

这篇文章主要介绍了python redis 批量设置过期key过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在使用 Redis、Codis 时,我们经常需要做一些批量操作,通过连接数据库批量对 key 进行操作:

关于未过期:

1.常有大批量的key未设置过期,导致内存一直暴增

2.rd需求 扫描出这些key,rd自己处理过期(一般dba不介入数据的修改)

3.dba 批量设置过期时间,(一般测试可以直接批量设置,线上谨慎操作)

通过一段代码,批量实现给未设置过期的key,设置24小时过期

from redis import Redis
def setExpiredKeys():
  try:
    if redis_pass == 'none':
      redisclient = Redis(host=redis_host, port=redis_port,db=0)
    else:
      redisclient = Redis(host=redis_host, port=redis_port, password=redis_pass)
    for key in redisclient.scan_iter(count=500):
      keyttl = redisclient.execute_command('ttl', key)
      if keyttl == -1: # 此处扫到key,可以进行导出处理或者执行命令
        redisclient.expire(key, 86400)
  except Exception as e:
    raise e
if __name__ == '__main__':
  redis_host = '192.168.0.1'
  redis_port = 6379
  redis_pass = '123456'
  setExpiredKeys()

代码功能:

通过导入redis模块中的Redis类函数,访问redis数据;建立Redisclient客户端,通过scan_iter 每次获取500个key;对key执行 ttl 命令,通过返回值判断key是否设置了过期,如果没有设置,就通过 expire 命令 批量设置过期时间

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python判断端口是否打开的实现代码
Feb 10 Python
Python遍历目录的4种方法实例介绍
Apr 13 Python
一些Python中的二维数组的操作方法
May 02 Python
Python多线程扫描端口代码示例
Feb 09 Python
Numpy掩码式数组详解
Apr 17 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
python 变量初始化空列表的例子
Nov 28 Python
关于tf.TFRecordReader()函数的用法解析
Feb 17 Python
keras 多gpu并行运行案例
Jun 10 Python
Python+pyaudio实现音频控制示例详解
Jul 23 Python
python3 tkinter实现添加图片和文本
Nov 26 #Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 #Python
Python小程序之在图片上加入数字的代码
Nov 26 #Python
基于Python获取城市近7天天气预报
Nov 26 #Python
NumPy中的维度Axis详解
Nov 26 #Python
python列表推导式操作解析
Nov 26 #Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 #Python
You might like
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
php单例模式示例分享
2015/02/12 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
python对html过滤处理的方法
2018/10/21 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
继电保护工岗位职责
2014/01/05 职场文书
班队活动设计方案
2014/01/30 职场文书
就业表自我评价分享
2014/02/06 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
志愿者事迹材料
2014/12/26 职场文书
飞越疯人院观后感
2015/06/09 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers