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实现的udp协议Server和Client代码实例
Jun 04 Python
跟老齐学Python之有容乃大的list(3)
Sep 15 Python
Python实现简单截取中文字符串的方法
Jun 15 Python
Python 自动化表单提交实例代码
Jun 08 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
wxpython布局的实现方法
Nov 01 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 Python
Python 匹配文本并在其上一行追加文本
May 11 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
新浪新闻小偷
2006/10/09 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
Python切片操作深入详解
2018/07/27 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
解决python运行启动报错问题
2020/06/01 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
技术总监个人的自我评价范文
2013/12/18 职场文书
文明村创建实施方案
2014/03/27 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
教师求职信
2014/06/17 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书