redis 改版的项目上线有两个月了,记录一下redis 相关的经验,也给大家一个参照:
我们的redis server是一主一从,使用R710的机器,8核心,24G内存; 每天约插入200万左右的数据,现在库里有3000万条纪录,占用了9G的内存;由于现在每天内存增长太快,担心很快会无法负载,因此写了脚本每天将过期数据删除;
现在运行中的问题:
1.redis运行基本稳定,从没有自己中断过服务,php脚本去set的话大概1秒钟能设置1万条小数据,并没有官方给出的数据高;但是修改配置后大重启服务时大概需要1到2分钟才能完全将硬盘中的数据加载到内存中去,在加载完之前,redis不能提供服务;
2.redis的默认配置中,每60秒如果纪录更改数达到1万条就需要dump到硬盘中去,但实际上由于超过了这个数,我们的redis几乎不停地在dump数据到硬盘上;dump数据到硬盘时,我估计为了达到一个原子的效应,避免数据丢失,redis是先把数据dump到一个临时文件,然后重命名为你在配置文件设定的数据文件名.而前面说到,加载数据要1到2分钟,dump数据应该也在1分钟左右吧;dump出来的文件差不多1到2个G;这样,服务器几乎一直保持着每分钟写一个2G的文件的这种IO的负载;磁盘基本不闲着;
3.还是在dump中,除开磁盘不闲着以外,CPU也一路飙升:redis是fork一个子进程来dump数据到硬盘,原有进程占用30%+的CPU,而dump数据的子进程单独享用用了一个CPU核心,cpu占用100%;
4. redis在dump数据的时候,是fork子进程,这样产生一个问题:redis本向占用了9G的内存,在dump数据时又fork一个进程,子进程继承了内存分配,也占用了9G的内存….redis一下子占用了18G的内存了;
发现这些问题后,我修改了redis的配置文件,设置为30分钟内只要有一次写修改就dump数据,这样系统负载大幅减轻了.
处于设想中的想法:
主Redis并不dump数据,不管写多少次都不dump到硬盘,或是这个dump的时间非常长;从redis则主要承担合理地dump数据到硬盘以起备份作用;主redis启动时先从从redis中scp或是ftp download数据回来;有待后续验证;
相关推荐
"redis-dump-master.zip" 是一个专门针对Redis数据库的备份工具,它能够帮助用户将Redis中的数据导出为JSON格式的文件,便于数据迁移、备份或者恢复。 在IT行业中,数据安全性和可恢复性是至关重要的。Redis-dump...
此外,了解Redis的基础知识,包括它的五大数据结构(字符串、哈希、列表、集合、有序集合)的使用场景,以及常见的Redis命令(如GET、SET、DEL、FLUSHALL等),是优化数据操作和提升性能的关键。对于开发者来说,...
Redis 是一个广泛使用的开源、高性能的键值存储系统,它被设计为支持多种数据结构,如字符...通过这些方法,开发者可以有效地定位内存占用高的键,进一步分析数据结构和优化存储策略,以达到更高效地使用 Redis 内存。
在Redis中,`dumps`通常指的是`redis-cli`工具的`dump`命令,它可以将数据库的序列化数据导出为RDB(Redis Database)格式的文件。RDB是Redis的一种持久化方式,它会定期或在满足特定条件时保存当前数据库状态,以便...
使用 redis-dump 可以将源 Redis 的数据导出为 JSON 格式,然后在目标 Redis 上导入。这种方式提供了更多的灵活性,但相对于其他方法可能更为复杂。 4. RDB 文件迁移: RDB(Redis Database)是另一种 Redis 的持久...
- `dump.rdb`:这是Redis默认的持久化文件,包含服务器在某个时间点的所有数据快照。 - `etc`:通常存放配置文件,比如`redis.conf`,是Redis的主要配置文件,用于设置端口、密码、持久化策略等。 - `bin`:一般...
1. **bin**目录:包含了Redis服务器(redis-server.exe)、客户端(redis-cli.exe)和其他工具,如检查数据一致性(redis-check-dump.exe)和键空间通知(redis-benchmark.exe)等。 2. **conf**目录:存放Redis的...
在Linux系统中安装Redis是一个常见的任务,特别是在搭建分布式缓存或数据库系统时。Redis是一款开源、高性能、基于键值...在实际操作中,确保根据你的具体需求调整配置文件,以实现数据的持久化、安全性以及性能优化。
总结来说,Redis-2.8 for Windows64是一个为Windows平台优化的Redis版本,提供了所有基本特性和强大的性能。通过提供的配置文件和文档,用户可以方便地在Windows环境中部署和管理Redis数据库,从而充分利用Redis的高...
Redis的6.2.4版本引入了一些新的特性和改进,例如更好的安全性、性能优化以及对某些命令的增强。用户应当关注官方文档以了解具体更新内容,确保能充分利用这些新特性。 总之,Redis-6.2.4 windows编译版为Windows...
此外,它还优化了内存管理,提升了内存效率,并且增加了对TLS(Transport Layer Security)的支持,增强了数据传输的安全性。 "bin"目录通常包含可执行文件和其他运行时所需的二进制文件。在Redis的Windows版本中,...
- `src/redis-check-dump`:检查RDB文件的工具。 - `src/redis-check-aof`:检查AOF文件的工具。 通过解压`redis-6.2.13.tar.gz`并根据`redis.conf`配置文件启动`redis-server`,就可以运行Redis服务了。同时,使用...
Redis 5.0.5是Redis的一个稳定版本,带来了多项改进和优化。以下将详细介绍Redis及其5.0.5版本在Windows下的安装与使用、主要特性以及相关配置知识。 1. **安装与运行** - 解压"redis-5.0.5.zip"至任意目录,如"C:...
4. **其他辅助工具**:可能还包括一些诊断或管理工具,如`redis-benchmark.exe`用于性能测试,`redis-check-aof.exe`和`redis-check-dump.exe`用于检查和修复数据文件。 在Windows环境下安装Redis,首先解压"redis-...
在压缩包中,"bin"目录下通常包含了Redis服务器端(redis-server.exe)和客户端(redis-cli.exe)的可执行文件,以及其他辅助工具,如用于检查数据一致性的redis-check-dump.exe,分析RDB文件的redis-check-aof.exe...
Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。其支持数据类型包括字符串、哈希、列表、集合、有序集合,还提供了事务、持久化、主从复制、Lua脚本等功能。 **二、...
- `redis-check-dump`检查RDB文件的完整性。 - `redis-stat`和`redis-insight`提供可视化监控。 10. **最佳实践** - 根据业务需求选择合适的数据结构,避免过度使用复杂操作。 - 对于大数据量操作,考虑采用...
- `redis-check-aof.exe`和`redis-check-dump.exe`:用于检查AOF(Append Only File)和RDB(Snapshot)持久化文件的完整性。 - `redis.conf`:默认配置文件,可以按需修改以适应不同环境。 - `LICENSE`和`README`:...
4. `redis-check-dump.exe`:这个工具用于检查RDB持久化文件的完整性,确保数据的安全性。 5. `redis-check-aof.exe`:该工具用于检查AOF文件的正确性,修复可能存在的问题。 在Windows 2003上部署Redis 3.0时,...
4. **辅助工具**:例如`redis-check-dump`用于检查RDB快照的完整性,`redis-check-aof`用于修复AOF日志问题。这些工具在维护和故障排查时非常有用。 接下来,我们来看一下Redis的安装步骤: 1. **环境准备**:确保...