首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis RDB会腐败吗?

Redis RDB会腐败吗?
EN

Server Fault用户
提问于 2014-01-23 14:57:42
回答 2查看 4.2K关注 0票数 0

在redis.io站点中,它声明RDB不如AOF持久。这是否意味着存在一些数据库损坏的可能性,如果在保存操作中丢失电源,则会导致完全数据丢失吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2014-05-31 14:36:46

如果基础数据存储有问题,RDB文件可能会损坏。Redis包括一个实用工具redis- check -dump来验证一个文件,您可以使用它来检查新编写的转储文件的一致性。

如果RDB在启动时损坏,Redis将无法启动并报告一个有点神秘的错误。有一个拉请求:

https://github.com/antirez/redis/pull/1744

使检查程序自动运行,但尚未合并(尚未)。

转储文件是在后台线程中编写的,这意味着它不能包含键空间的100%的最新副本。要做到这一点,您需要使用AOF文件,并在每次写入后将其设置为同步(这对性能有影响)。

Redis的体系结构允许您构建许多不同的解决方案。您可以使用“从不”fsync在主服务器上打开AOF,然后创建两个从服务器,其中一个服务器每10分钟只创建RDB文件,另一个服务器使用AOF和“始终”或“每秒钟”fsync。这将使您在主服务器上内置冗余,只要磁盘从未失败,但如果有,您可以从从服务器获取AOF文件,并使用它将主服务器带回。如果失败,您可以转到RDB从属程序,但在这种情况下,您可能会丢失从最后10分钟转储以来编写的数据。

这种灵活性是Redis之所以如此强大的原因之一:您可以根据存储的数据选择要使用的冗余级别。

或者,您可以使用托管的Redis服务,让他们担心细节。

票数 2
EN

Server Fault用户

发布于 2014-01-23 15:06:19

.rdb本身“不能”损坏,因为转储首先保存到tmp文件,然后重命名为转储。当然,当重命名时可能会出错。所以有一个很小的机会,但不太可能。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/569370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档