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之再深点,更懂list
Sep 20 Python
深入解析Python中的变量和赋值运算符
Oct 12 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
详谈python http长连接客户端
Jun 12 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
python读写LMDB文件的方法
Jul 02 Python
PyQt5实现简易电子词典
Jun 25 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
python实现爬取百度图片的方法示例
Jul 06 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 Python
python小程序之飘落的银杏
Apr 17 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
PHP cron中的批处理
2008/09/16 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
小结Python用fork来创建子进程注意事项
2014/07/03 Python
python自动化测试之setUp与tearDown实例
2014/09/28 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python 查看文件的编码格式方法
2017/12/21 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
python reverse反转部分数组的实例
2018/12/13 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
售后服务经理岗位职责范本
2014/02/22 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
党员民主生活会材料
2014/12/15 职场文书
超市食品安全承诺书
2015/04/29 职场文书
办公经费申请报告
2015/05/15 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL
MySQL数据库简介与基本操作
2022/05/30 MySQL