开发者社区> ~信~仰~> 正文

redis内存语义分析

简介:
+关注继续查看

内存语义分析

测试环境redis服务出现异常, 为了排查错误对redis内存进行了分析.

分析redis内存

1) 安装redis-rdb-tools: Linux下执行: pip install rdbtools(先安装python-pip才能使用pip命令)

2) 找到redis的dump.rdb文件
3) 执行rdb -c memory dump.rdb > memory.csv
生成的memory.csv就是分析文件了.
附:
dump.rdb文件是redis快照的结果,也就是将数据库中的数据保存到硬盘,防止redis意外重启后数据丢失的。redis每次启动时,都会先去找这个文件,将里面的数据导入数据库中,如果没有找到这个文件就会重新建立一个,如果找到了,但是被清空了,对不起,你的数据也就丢失了。

  • dump文件保存路径请见redis.conf:
    # The filename where to dump the DB
    dbfilename dump.rdb

    # The working directory.
    #
    # The DB will be written inside this directory, with the filename specified
    # above using the 'dbfilename' configuration directive.
    #
    # The Append Only File will also be created inside this directory.
    #
    # Note that you must specify a directory here, not a file name.
    dir /var/lib/redis

查看分析结果

database,type,key,size_in_bytes,encoding,num_elements,len_largest_element
0,string,cache_area_cityOfProvince_34,168,string,81,81
0,string,cache_hour_transaction_num_05-10,2672,string,2205,2205
0,string,cache_banner_app_home,384,string,291,291
0,string,cache_hour_transaction_num_05-27,1648,string,1393,1393
0,string,cache_hour_transaction_num_05-31,368,string,233,233
0,string,cache_hour_transaction_num_06-05,880,string,639,639
0,string,cache_day_play_count_05-19,1384,string,1255,1255
0,list,logstash,3319374989,quicklist,7660698,34240
0,list,watch_order_48_615,189,quicklist,1,32
...

字段含义依次为: 数据库ID,数据类型,key,内存使用量(byte),编码。内存使用量包含key、value和其他值。

分析可得, key为'logstash'的内容最大, 为3319374989字节(3165.6Mb); 远超其他正常值, 定位原因.

参考链接:https://yq.aliyun.com/articles/62899

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
学习分享(第 2 期):从源码层面看 Redis 节省内存的设计
学习分享(第 2 期):从源码层面看 Redis 节省内存的设计
30 0
【redis】redis的过期策略以及内存淘汰机制
今天我们讨论下redis的过期策略以及内存淘汰机制,如果你想要考察一个人对redis的了解,那吗这个问题是必选的,从他对这个问题的回答中,就可以了解到他的redis深浅。
47 0
【Redis过期策略/内存淘汰机制/对过期Key的处理】
【Redis过期策略/内存淘汰机制/对过期Key的处理】
66 0
Redis源码剖析之内存淘汰策略(Evict)
Redis源码剖析之内存淘汰策略(Evict)
76 0
93. Redis 内存满了怎么办?(二)
93. Redis 内存满了怎么办?(二)
34 0
93. Redis 内存满了怎么办?(一)
93. Redis 内存满了怎么办?(一)
53 0
94. 熟悉Redis吗,项目中你是如何对Redis内存进行优化的(二)
94. 熟悉Redis吗,项目中你是如何对Redis内存进行优化的(二)
26 0
94. 熟悉Redis吗,项目中你是如何对Redis内存进行优化的(一)
94. 熟悉Redis吗,项目中你是如何对Redis内存进行优化的(一)
51 0
OAuth2在内存、Redis方式下的多客户端配置
`Spring`所提供的`OAuth2`集成策略,支持多种方式存储`认证信息`以及`客户端信息`,由于在之前的文章中讲解使用时把知识点进行了拆分,有很多同学不太会组合使用,很多单独问我`ApiBoot`所提供的`OAuth2`的整合后,多个客户端该怎么配置?
154 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
高并发分布式缓存Redis6.0
立即下载
云服务器ECS内存增强型实例re6全新发布
立即下载
国内开发者与Redis开源社区的发展
立即下载