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中线程编程之threading模块的使用详解
Jun 23 Python
详解Python编程中time模块的使用
Nov 20 Python
以一个投票程序的实例来讲解Python的Django框架使用
Feb 18 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
浅谈django三种缓存模式的使用及注意点
Sep 30 Python
PyCharm更改字体和界面样式的方法步骤
Sep 27 Python
python zip,lambda,map函数代码实例
Apr 04 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
python字典通过值反查键的实现(简洁写法)
Sep 30 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
Python实现单例模式的5种方法
Jun 15 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中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php除数取整示例
2014/04/24 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
python之yield表达式学习
2014/09/02 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
Python换行与不换行的输出实例
2020/02/19 Python
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
个人简历自荐信
2014/06/26 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
2014年市场部工作总结
2014/11/25 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
求职信格式范文
2015/03/19 职场文书
小学工作总结2015
2015/05/04 职场文书
上课迟到检讨书
2015/05/06 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
大学生创业计划书
2019/06/24 职场文书
Pandas-DataFrame知识点汇总
2022/03/16 Python
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android