有效避免数据丢失! Redis持久性计划选择

发布者:上海IT外包来源:http://www.lanmon.net点击数:871

为什么你需要坚持?
通常,redis数据存储在存储器中。如果数据库失败,数据将丢失。即使在redis集群或redis sentinel模式下,主从同步数据的恢复也需要一些时间。
持久性功能是为了有效避免进程退出导致的数据丢失,并使用以前的持久性文件在下次重启时实现数据恢复。
启用Redis后,数据将存储在磁盘上,数据库将执行增量同步,远低于完全同步。生产环境中的故障数据恢复起着非常重要的作用!
Redis数据持久性有两种选择
Redis持久性有两种选择:
RDB是一种快照类型的数据存储,可以在当前时间点定期将所有Redis数据保存到磁盘。
AOF是一种额外的存储方法,可以实时记录Redis写入磁盘。
这两种方案有什么区别?让小编走到一起〜
1. RDB持久性
当Redis写入触发RDB持久性条件时(您也可以手动执行dgsave命令来触发),Redis主进程会分叉子进程创建临时RDB存储文件。创建文件后,将原始RDB文件替换为临时文件重命名。 RDB文件是单个文件,适用于灾难恢复和数据恢复。通过RDB文件恢复数据库所需的时间更少。通常,1G快照文件在大约20秒内加载到内存中。
有效避免数据丢失! Redis持久性计划选择
缺点:
RDB持久性仅定期保存Redis数据。当Redis关闭而不触发下一个存储时,内存中的所有数据都将丢失。
另外,当数据量很大时,fork子进程的操作会消耗cpu。如下图所示,每19秒的RDB触发RDB的持久性,Redis消耗的CPU将会飙升。在fork子进程期间可能发生高达第二级的阻塞条件。
Redis的
参数:
Redis的
如果save选项设置为empty save'',则禁用RDB持久性。可以多次配置RDB持久性触发条件。例如,在900秒内有1个写入触发器快照/10秒内写入触发器快照。这可以自由配置,以根据自己的Redis写入来平衡性能和数据安全性。建议使用Stop-writes-on-bgsave-error。发生redis bgsave错误时,拒绝客户端的请求。 bgsave故障通常不足以用于磁盘或内存空间。需要对其进行监控以提高数据安全性。
2. AOF持久性
通过保存Redis写操作的命令来实现AOF。使用AOF进行持久化,Redis数据的安全性将得到极大改善,在异常停机的情况下,最多可丢失1秒的数据。 AOF文件记录了redis写操作,格式清晰,易于理解和修改,有利于数据重建。
Redis的
缺点:
随着redis写入的增加,AOF存储文件将变得越来越大,这将影响数据库数据的恢复时间和磁盘空间,因此我们需要配置AOF重写以减少AOF文件的容量。这里我们可以使用默认的两个。触发条件配置或我们可以手动调用BGREWRITEAOF命令来触发。
参数:
Redis的
Appendonly设置是否启用AOF持久性。
Appendfsync有三种持久性模式:always/everysec/no,它将数据存储的速度和安全性与everysec相结合,每秒将数据同步到磁盘。
3.比较RDB和AOF持久性的优缺点
这两种方法各有优势。让我们比较两种redis数据持久化方法:
Redis的
4.选择
当Redis恢复数据时,它将首先检查AOF文件是否存在。如果它不存在,请尝试加载RDB文件。
在实际生产环境中,根据数据量,应用程序的安全要求和预算约束,存在各种持久性策略。如果不使用任何持久性,请使用RDB或AOF之一,或同时启用RDB和AOF持久性。
PS:持久性的选择必须与Redis的主从策略一起考虑,因为主从复制和持久性也具有数据备份的功能,主从主从属可以独立选择持久性方案。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部