REdis之RDB配置问题
RDB配置:
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
repl-diskless-sync no
aof-use-rdb-preamble no
rdb-save-incremental-fsync yes
影响:
易生成REdis客户端的连接超时。
建议:
如果已经开启了AOF,可关闭RDB,即将save参数值设置为空:save "";
或者调大save参数,人工控制save执行时间点,将save放在空闲时段,
但问题实际仍然存在,只是影响减少,同时需要调长client与REdis的超时时长。
如果是REdis-5.0或以上版本,可以设置配置项rdb-save-incremental-fsync值为yes,
以降低save时的影响,但之下的版本不支持rdb-save-incremental-fsync。
理由:
在生成RDB时,易导致客户端访问超时。
截至REdis-5.0版本,如果开启了AOF,
在进程启动时仍然只会加载AOF文件,并不会使用RDB文件,
所以不生成RDB也是安全的。
缺点:
AOF文件不支持重启后的增量复制(可理解为断点续复制),
而从REdis-4.0开始RDB支持增量复制。
在不久的将来,AOF可能也会支持重启时的增量复制。
一个比较简单的实现AOF支持增量复制方法,
新增命令SETREPL,在每次fsync之前写入一笔SETREPL命令,
该命令带两个参数,一是replid,二是offset,
这样重启回放时,可以象RDB那样恢复replid和offset,
而只需要对REdis做小量改动。
保存RDB日志示例:
62820:M 01 Apr 18:15:57.097 * 10000 changes in 60 seconds. Saving...
62820:M 01 Apr 18:15:57.103 * Background saving started by pid 69409
69409:C 01 Apr 18:15:57.427 * DB saved on disk
69409:C 01 Apr 18:15:57.433 * RDB: 2 MB of memory used by copy-on-write
62820:M 01 Apr 18:15:57.504 * Background saving terminated with success
62820:M 01 Apr 18:16:58.098 * 10000 changes in 60 seconds. Saving...
62820:M 01 Apr 18:16:58.104 * Background saving started by pid 75882
75882:C 01 Apr 18:16:58.426 * DB saved on disk
75882:C 01 Apr 18:16:58.433 * RDB: 2 MB of memory used by copy-on-write
62820:M 01 Apr 18:16:58.505 * Background saving terminated with success
62820:M 01 Apr 18:17:59.104 * 10000 changes in 60 seconds. Saving...
62820:M 01 Apr 18:17:59.110 * Background saving started by pid 82326
82326:C 01 Apr 18:17:59.419 * DB saved on disk
82326:C 01 Apr 18:17:59.426 * RDB: 2 MB of memory used by copy-on-write
62820:M 01 Apr 18:17:59.510 * Background saving terminated with success
REdis之RDB配置问题的更多相关文章
- 4、解析配置文件 redis.conf、Redis持久化RDB、Redis的主从复制
1.Units单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感 2.INCLUDES包含 和我们的Struts2配置文件类似,可以通过includes包 ...
- redis的 rdb 和 aof 持久化的区别 [转]
aof,rdb是两种 redis持久化的机制.用于crash后,redis的恢复. rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个d ...
- redis做RDB时请求超时case
近期在排查redis做rdb时会有部分请求超时的case.初步推断是我们redisserver上开启了THP(Transparent Huge Pages). 1) Linux本身的 ...
- redis的 rdb 和 aof 持久化的区别
aof,rdb是两种 redis持久化的机制.用于crash后,redis的恢复. rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个d ...
- 配置方案:Redis持久化RDB和AOF
Redis持久化方案 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘.当下次Redis重启时,利 ...
- linux之 redis 的rdb 转 aof 及主从复
redis持久化RDB基于快照的持久化通过save命令,强制持久化 在redis.conf中dbfilename dbmp.rdbsave 900 1save 300 10save 60 10 ...
- Redis的RDB与AOF介绍(Redis DateBase与Append Only File)
RedisRDB介绍(Redis DateBase) 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 一.是什么? Redis会 ...
- Redis 数据恢复方法,redis-port 工具将自建 redis 的 rdb文件同步到云数据库
1. Redis 恢复的机制 如果只配置 AOF ,重启时加载 AOF 文件恢复数据: 如果同时配置了 RDB 和 AOF ,启动是只加载 AOF 文件恢复数据: 如果只配置 RDB,启动是将加载 d ...
- Redis持久化——RDB(一)
核心知识点: 1.RDB:将当前数据生成快照保存到硬盘 2.手动触发 save:会阻塞Redis服务器直到RDB完成. bgsave:执行fork创建子进程,由子进程负责RDB操作,阻塞只发生在for ...
随机推荐
- 《DOM Scripting》学习笔记-——第五章、第六章 案列改进
第四章的案例代码可以得到更好的改进.例如:预留退路.向后兼容性和分离js. 原html代码: <!DOCTYPE html> <html lang="en"> ...
- JQUERY之表单验证案例
<!-- 需求: 用户注册页面要有用户名.密码.确认密码.邮箱 用户名文本框:用户名不能为空,且必须为数字与字母的6到12位的组合 密码框:密码不能为空,六到八位数字或字母的组合 确认密码框:确 ...
- 安卓出现错误: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
Caused by: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to android.widget.Ed ...
- dubbo常见面试问题(二)
1.什么是Dubbo? Duubbo是一个RPC远程调用框架, 分布式服务治理框架 2.什么是Dubbo服务治理? 服务与服务之间会有很多个Url.依赖关系.负载均衡.容错.自动注册服务 3.Dubb ...
- WEB实现单元格合并
function merge_quadefect() { //可实现合并单元格,上下行来比较 //debugger; var totalCols = 7; 列数 var totalRows = $(& ...
- python测试开发django-1.开始hello world!
前言 当你想走上测试开发之路,用python开发出一个web页面的时候,需要找一个支持python语言的web框架.django框架有丰富的文档和学习资料,也是非常成熟的web开发框架,想学pytho ...
- c++ vector push_back对象的时候存起来的是拷贝
比如 class C1; vector<C1> vec;C1* p=new C1;vec v1;v1.push_back(&(*p));delete p; 这里,传进函数的是引用, ...
- Python CGI编程
CGI(Common Gateway Interface)通用网关接口,它是一段程序,运行在服务器上.如:HTTP服务器,提供同客户端HTML页面的接口. CGI程序可以是python脚本,PERL脚 ...
- pom.xml文件释义
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- centos7 安装部署jenkins
一.简介 jenkins是一个Java开发的开源持续集成工具,广泛用于项目开发,具有自动化构建.测试和部署等功能,它的运行需要Java环境. 二.搭建环境准备:# cat /etc/redhat-re ...