Python查询Redis中的Key
今日,大哥让我查下项目的在线用户量,听到这个消息顿时懵逼了,在线用户量,这个该怎么查????想到项目中的登陆用户缓存信息Token都存放在Redis中,是不是可以根据Redis中Token的个数大致估出来项目的在线用户量,用户登录是有有效期的(七小时有效、三天免登陆等),因此,我们可以根据Redis中Key值的有效期来大致归纳用户的时段在线量,话不多说,上代码:
# 添加redis模块引用
import redis def search_key(): # 创建Redis连接池
# host:连接主机
# port:端口号,默认6379
# db:数据库,默认0-15
pool = redis.ConnectionPool(host='localhost', port=6379, db=14) # 从连接池中获取一个连接
r = redis.StrictRedis(connection_pool=pool) # 获取redis中keys的个数,我在redis的这个库里只存放用户的登陆token信息,不存放别的信息,不需要筛选
# 如果redis库中还存放着其他信息,需要在此筛选,
keys = r.keys()
# print(keys)
print('Token的总个数:', len(keys))
twoHours = 0
threeHours = 0
fiveHours = 0
for i in range(len(keys)):
key = keys[i]
remainTime = r.ttl(key)
if remainTime > 7200:
twoHours = twoHours + 1
if remainTime > 10800:
threeHours = threeHours + 1
if remainTime > 18000:
fiveHours = fiveHours + 1 print('超过两个小时有效:' + str(twoHours))
print('超过三个小时有效:' + str(threeHours))
print('超过五个小时有效:' + str(fiveHours)) if __name__ == '__main__':
search_key()
最后的输出是这样的:

Python查询Redis中的Key的更多相关文章
- 单点登录filter根据redis中的key判断是否退出
package com.ailk.biapp.ci.localization.cntv.filter; import java.io.IOException; import java.util.Has ...
- 如何解决Redis中的key过期问题
最近我们在Redis集群中发现了一个有趣的问题.在花费大量时间进行调试和测试后,通过更改key过期,我们可以将某些集群中的Redis内存使用量减少25%. Twitter内部运行着多个缓存服务.其中一 ...
- 查询redis中没有设置过期时间的key
#!/bin/sh ## 该脚本用来查询redis集群中,哪些key是没有设置过期时间,对应只需要修改redis的其中一个实例的 host和port ## 脚本会自动识别出该集群的所有实例,并查出对应 ...
- 超大批量删除redis中无用key+配置
目前线上一个单实例redis中无用的key太多,决定删除一部分. 1.删除指定用户的key,使用redis的pipeline 根据一定条件把需要删除的用户统计出来,放到一个表里面,表为 del_use ...
- redis中的key设置过期时间
EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 在 Redis 中,带有生存时间的 key 被称为『易失的 ...
- Python操作Redis之设置key的过期时间
对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间,一种是指定key从当前时间开始算起还能存活多久,时间单位有两个,一个是秒 ...
- Redis中对Key进行分类
使用":"体现层次 >set key1:key2:key4 value1 "OK" >set key1:key2:key5 value2 " ...
- Python(Redis 中 String/List/Hash 类型数据操作)
1.下载 redis 模块 pip install redis 2.redis 数据库两种连接方式 简单连接 decode_responses=True,写入和读取的键值对中的 value 为 str ...
- Python(Redis 中 Set/Zset 类型数据和其他操作)
1.redis 基本操作命令 Set 操作 Set 集合就是不允许重复的列表 无序集合 sadd(name,values) 给 name 对应的集合中添加 1 个或多个元素 import redis ...
随机推荐
- 会话技术之Cookie
在无状态的客户端(未登录)下,张三想买手机然后把手机加入购物车,服务器发出添加成功的响应,然后把手机加入ServletContext域里,然后张三想在逛逛别的, 再无状态的客户端(未登录)下,李四想买 ...
- 1022_Digital_Library (30分)
这里提供两种写法, 其实都是一样的,第一种比较快. #include <bits/stdc++.h> using namespace std; map<string,set<s ...
- auto的用法
用法参考链接:https://blog.csdn.net/arrowyl/article/details/80886515 Codeblocks 出现'auto' changes meaning in ...
- 对于javaScript中的alert和document.write()的执行顺序的记录
代码: <script>//1----语句式的匿名函数创建以及调用 (function(name,age){ alert("name:"+name+",age ...
- js函数声明外面使用小括号括起来再接一个小括号的写法
js函数声明外面使用小括号括起来再接一个小括号的写法 (function(){})(); (function(){}()); !function(){}(); 总结ps:意思将函数声明变成,直接执行的 ...
- disconf---分布式配置管理平台的搭建(linux版本)
一.获取disconf的代码 地址:https://github.com/knightliao/disconf 二.搭建基础服务 ①redis,mysql,zookeeper在博主的其他博文中有相应搭 ...
- 动态规划: 最大m子段和问题的详细解题思路(JAVA实现)
这道最大m子段问题我是在课本<计算机算法分析与设计>上看到,课本也给出了相应的算法,也有解这题的算法的逻辑.但是,看完之后,我知道这样做可以解出正确答案,但是我如何能想到要这样做呢? 课本 ...
- python基础(三)---Python基础语法
1. 注释 1.1 单行注释 语法格式: #[空格]说明性文字信息 添加快捷键: Ctrl+/ 取消快捷键: Ctrl+/ 1.2 多行注释 语法格式: """说明性文字 ...
- Vue中组件之间的通信方式
vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 本文会介绍组件间通信的8种方式如下图所示, 并介绍在不同的场景下如何选择有效方式实现的 ...
- 关于cctype头⽂件⾥的⼀些函数
本文摘录柳神笔记: 刚刚在头⽂件那⼀段中也提到, #include 本质上来源于C语⾔标准函数库中的头⽂件 #include ,其实并不属于C++新特性的范畴,在刷PAT⼀些字符串逻辑题的时候也经常⽤ ...