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获取本机mac地址和ip地址的方法
Apr 29 Python
一些Python中的二维数组的操作方法
May 02 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
django反向解析和正向解析的方式
Jun 05 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
python实现最小二乘法线性拟合
Jul 19 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
appium+python adb常用命令分享
Mar 06 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
如何利用python进行时间序列分析
Aug 04 Python
Python QT组件库qtwidgets的使用
Nov 02 Python
python not运算符的实例用法
Jun 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通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
PHP 文件系统详解
2012/09/13 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
node.js通过url读取文件
2020/10/16 Javascript
Python中for循环详解
2014/01/17 Python
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
让python在hadoop上跑起来
2016/01/27 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL