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 django集成cas验证系统
Jul 14 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
3个用于数据科学的顶级Python库
Sep 29 Python
详解Python中is和==的区别
Mar 21 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
python next()和iter()函数原理解析
Feb 07 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
Python 实现将某一列设置为str类型
Jul 14 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 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
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
JavaScript中的this机制
2016/01/30 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
Python argv用法详解
2016/01/08 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
小学生运动会通讯稿
2014/09/23 职场文书
学生打架检讨书
2014/10/20 职场文书
护士求职自荐信
2015/03/25 职场文书
学校计划生育责任书
2015/05/09 职场文书
撤诉状格式范本
2015/05/19 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
python脚本框架webpy模板控制结构
2021/11/20 Python
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技