项目研发过程中,用到Python操作Redis场景,记录学习过程中的心得体会。
一、环境搭建
- Windows + Anaconda3
- 安装
redis
第3方包,pip install -u redis
pip install -u # 升级安装
- linux下查看redis配置信息
bind 127.0.0.1 # 表示只允许本地访问,无法远程连接
bind 0.0.0.0 # 表示任何ip都可以访问
protected-mode yes # 保护模式,只允许本地链接
protected-mode no # 保护模式关闭
daemonize yes # 开启守护进程模式。单进程多线程模式,redis在后台运行。
daemonize no # redis命令行界面,exit强制退出或关闭连接都会导致redis进程退出
配置示例
- 查找
redis.conf
文件路径位置,find / -name 'redis.conf'
- 查看
redis.conf
文件,vim redis.conf
二、代码实现
1、StrictRedis vs Redis
- StrictRedis用于实现大部分官方的命令,并使用官方语法和命令;
- Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py;
- 官方推荐使用StrictRedis方法。
2、 实验代码
import redis
r = redis.Redis(host='10.xx.xx.201', port=7019,decode_responses=True, password='********')
mmj = r.info('Memory')
# result / r.execute_command('info Memory')
used_memory = mmj.get('used_memory')
maxmemory = mmj.get('maxmemory')
used_memory_human = mmj.get('used_memory_human')
maxmemory_human = mmj.get('maxmemory_human')
left_mem_ratio = (maxmemory - used_memory)*1.0/maxmemory
三、redis info
Redis commands info 官方指南
1、memory
信息项 | 解释 |
---|---|
used_memory | 由Redis分配器分配的内存总量,包含redis进程内部的开销和数据占用的内存,以字节为单位 |
used_memory_human | 更直观展示分配的内存总量。 |
used_memory_rss | 向os申请的内存大小。与 top 、 ps等命令的输出一致。 |
used_memory_rss_human | 更直观展示向os申请的内存大小。 |
used_memory_peak | redis的内存消耗峰值(以字节为单位) |
used_memory_peak_human | 更直观返回redis的内存消耗峰值 |
used_memory_peak_perc | 使用内存达到峰值内存的百分比,即(used_memory/ used_memory_peak) *100% |
used_memory_overhead | Redis为了维护数据集的内部机制所需的内存开销,包括所有客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和主从复制的backlog。 |
used_memory_startup | Redis服务器启动时消耗的内存 |
used_memory_dataset | 数据占用的内存大小,即used_memory-sed_memory_overhead |
used_memory_dataset_perc | 数据占用的内存大小的百分比,100%*(used_memory_dataset/(used_memory-used_memory_startup)) |
total_system_memory | 整个系统内存 |
total_system_memory_human | 以更直观的格式显示整个系统内存 |
used_memory_lua | Lua脚本存储占用的内存 |
used_memory_lua_human | 以更直观的格式显示Lua脚本存储占用的内存 |
maxmemory | Redis实例的最大内存配置 |
maxmemory_human | 以更直观的格式显示Redis实例的最大内存配置 |
maxmemory_policy | 当达到maxmemory时的淘汰策略 |
mem_fragmentation_ratio | 碎片率,used_memory_rss/ used_memory |
mem_allocator | 内存分配器 |
active_defrag_running | 表示没有活动的defrag任务正在运行,1表示有活动的defrag任务正在运行(defrag:表示内存碎片整理) |
lazyfree_pending_objects | 0表示不存在延迟释放的挂起对象 |
到此这篇关于python获取redis memory使用情况的文章就介绍到这了,更多相关python redis memory使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!