开发者

python获取redis memory使用情况场景分析

开发者 https://www.devze.com 2022-12-22 08:57 出处:网络 作者: kngines
目录一、环境搭建二、代码实现1、phpStrictRedis vs Redis2、 实验代码三、redis info项目研发过程中,用到python操作Redis场景,记录学习过程中的心得体会。
目录
  • 一、环境搭建
  • 二、代码实现
    • 1、phpStrictRedis vs Redis
    • 2、 实验代码
  • 三、redis info

    项目研发过程中,用到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

    python获取redis memory使用情况场景分析

    二、代码实现

    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('Mem开发者_Redisory')
    # 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(js'maxmemory_human')
    left编程_mem_ratio = (maxmemory - used_memory)*1.0/maxmemory

    python获取redis memory使用情况场景分析

    三、redis info

    Redis commands info 官方指南

    1、memory

    信息项解释
    used_memory由Redis分配器分配的内存总量,包含redis进程内部的开销和数据占用的内存,以字节为单位
    used_memory_human更直观展示分配的内存总量
    used_memory_RSS向os申请的内存大小。与 top 、 ps等命令的输出一php致。
    used_memory_rss_human更直观展示向os申请的内存大小。
    used_memory_peakredis的内存消耗峰值(以字节为单位)
    used_memory_peak_human更直观返回redis的内存消耗峰值
    used_memory_peak_perc使用内存达到峰值内存的百分比,即(used_memory/ used_memory_peak) *100%
    used_memory_overheadRedis为了维护数据集的内部机制所需的内存开销,包括所有客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和主从复制的backlog。
    used_memory_startupRedis服务器启动时消耗的内存
    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_LuaLua脚本存储占用的内存
    used_memory_lua_human以更直观的格式显示Lua脚本存储占用的内存
    maxmemoryRedis实例的最大内存配置
    maxmemory_human以更直观的格式显示Redis实例的最大内存配置
    maxmemory_policy当达到maxmemory时的淘汰策略
    mem_fragmentation_ratio碎片率,used_memory_rss/ used_memory
    mem_allocator内存分配器
    active_defrag_running表示没有活动的defrag任务正在运行,1表示有活动的defrag任务正在运行(defrag:表示内存碎片整理)
    lazyfree_pendin编程客栈g_objects0表示不存在延迟释放的挂起对象

    到此这篇关于python获取redis memory使用情况的文章就介绍到这了,更多相关python redis memory使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号