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 getopt 参数处理小示例
Jun 09 Python
Python常用模块介绍
Nov 21 Python
简洁的十分钟Python入门教程
Apr 03 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
Python多线程threading模块用法实例分析
May 22 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
python中的垃圾回收(GC)机制
Sep 21 Python
python基础之文件处理知识总结
May 23 Python
使用Python开发冰球小游戏
Apr 30 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 中的批处理的实现
2007/06/14 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
XENON基于JSON变种
2010/07/27 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
Python使用Scrapy爬取妹子图
2015/05/28 Python
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
在centos7中分布式部署pyspider
2017/05/03 Python
python实现支付宝转账接口
2019/05/07 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
体育教育毕业生自荐信
2013/11/21 职场文书
积极分子思想汇报
2014/01/04 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
学校安全防火方案
2014/06/07 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL