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 相关文章推荐
解决PyCharm中光标变粗的问题
Aug 05 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python requests模块的使用示例
Apr 07 Python
python中pandas对多列进行分组统计的实现
Jun 18 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 adodb操作mysql数据库
2009/03/19 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php防止sql注入简单分析
2015/03/18 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
实例讲解JS中pop使用方法
2019/01/27 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
Python的设计模式编程入门指南
2015/04/02 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
Python函数式编程
2017/07/20 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
餐饮食品安全责任书
2015/01/29 职场文书
会计岗位职责
2015/02/03 职场文书