redis内存语义分析

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

内存语义分析

测试环境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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
14天前
|
NoSQL 安全 Redis
redis内存限制与淘汰策略
Redis内存管理包括限制和淘汰策略。`maxmemory`配置参数决定内存上限,无设置时64位系统默认不限制,可能导致系统资源耗尽,生产环境建议设定合理值。当内存满时,未设置淘汰策略会导致写入错误。Redis提供8种淘汰策略,如LRU(最近最少使用)和LFU(最不经常使用),以及随机或基于过期时间的删除。需根据数据重要性、访问频率和一致性选择合适策略。
16 0
|
19天前
|
存储 缓存 NoSQL
Redis 服务器指南:高性能内存数据库的完整使用指南
Redis 服务器指南:高性能内存数据库的完整使用指南
|
21天前
|
存储 缓存 NoSQL
Redis的内存淘汰策略是什么?
【4月更文挑战第2天】Redis内存淘汰策略在内存满时,通过删除旧数据为新数据腾空间。策略包括:volatile-lru/LFU(基于LRU/LFU算法淘汰有过期时间的键),volatile-random/ttl(随机/按TTL淘汰),allkeys-lru/LFU(所有键的LRU/LFU),allkeys-random(随机淘汰所有键),以及noeviction(不淘汰,返回错误)。选择策略要考虑访问模式、数据重要性和性能需求。
|
1月前
|
NoSQL 应用服务中间件 Linux
Redis的内存回收机制
Redis的内存回收机制
25 2
|
2月前
|
存储 缓存 NoSQL
内存淘金术:Redis 内存满了怎么办?
内存淘金术:Redis 内存满了怎么办?
37 1
|
3月前
|
存储 JSON NoSQL
Redis 内存优化神技,小内存保存大数据
Redis 内存优化神技,小内存保存大数据
37 0
|
3月前
|
缓存 NoSQL 算法
Redis 内存满了怎么办?这样置才正确!
Redis 内存满了怎么办?这样置才正确!
46 1
|
12天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
21 0
|
21天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
20 2
|
26天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
16 0