redis 持久化疑惑

286 天前
 Cola98

最近重新看 redis 持久化相关知识,发现官方写的地方有些冲突:

RDB advantages:

RDB is a very compact single-file point-in-time representation of your Redis data. RDB files are perfect for backups. For instance you may want to archive your RDB files every hour for the latest 24 hours, and to save an RDB snapshot every day for 30 days. This allows you to easily restore different versions of the data set in case of disasters.

RDB disadvantages: RDB is NOT good if you need to minimize the chance of data loss in case Redis stops working (for example after a power outage). You can configure different save points where an RDB is produced (for instance after at least five minutes and 100 writes against the data set, you can have multiple save points). However you'll usually create an RDB snapshot every five minutes or more, so in case of Redis stopping working without a correct shutdown for any reason you should be prepared to lose the latest minutes of data.

前面提到适合容灾场景,但是在遇到断电这种情况表现还不如 AOF ,这是不是起冲突了?

1610 次点击
所在节点    程序员
6 条回复
uiosun
286 天前
有限灾备吧——备份好的文件非常易于恢复;断电等会导致丢失相对近期数据(取决于你的 x min 备份一次的设置)
arloor
286 天前
rdb 的优势部分提到了 backup snapshot ,这个并不是你以为的适合容灾场景。
backup 和 snapshot 是指所有数据的快照,你可以认为是 dump 出来了。dump 之后的变更全都没有
aof 是对写入的 append only 的记录,即使丢也只会丢最后的几条变更。

能看官方文档是好事,耐心的继续看下去吧
SoviaPhilo
286 天前
RDB 是全量备份,全量备份意味着要比 AOF 更重, 也就意味着你不可能每秒一次 RDB
如果真的要用 Redis 做持久化, 视数据的重要性,可能是要两个都开的
GrayXu
286 天前
严格来说前面不是说容灾,只是说 snapshot 的用途。AOF 才能保障崩溃一致性
kuituosi
286 天前
rdb 和 aof 都可以灾备,各有优缺点。rds 恢复很快但是丢失最新数据可能就多
aof 恢复慢但是丢失最新数据相对少,aof 也可能会拖慢写入速度
所以具体用哪一种需要自己选择,本来也没有完美的方案
bthulu
285 天前
每毫秒一次 RDB 全量备份就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1023621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX