RDB持久化的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
RDB文件緊湊,體積小,網(wǎng)絡(luò)傳輸快,適合全量復(fù)制;恢復(fù)速度比AOF快很多。當(dāng)然,與AOF相比, RDB最重要的優(yōu)點(diǎn)之一是對(duì)性能的影響相對(duì)較小。
(體積小,恢復(fù)速度更快,對(duì)性能影響較小。)
缺點(diǎn)
- RDB文件的致命缺點(diǎn)在于其數(shù)據(jù)快照的持久化方式?jīng)Q定了必然做不到實(shí)時(shí)持久化,而在數(shù)據(jù)越來(lái)越重要的今天,數(shù)據(jù)的大量丟失很多時(shí)候是無(wú)法接受的,因此AOF持久化成為主流。
- 此外,RDB文 件需要滿(mǎn)足特定格式,兼容性差(如老版本的Redis不兼容新版本的RDB文件)。
- 對(duì)于RDB持久化,一方面是bgsave在進(jìn)行fork操作時(shí)Redis主進(jìn)程會(huì)阻塞,另一方面,子進(jìn)程向硬盤(pán)寫(xiě)數(shù)據(jù)也會(huì)帶來(lái)IO壓力。
(實(shí)時(shí)性差、兼容性差、在fork子進(jìn)程時(shí)會(huì)阻塞父進(jìn)程。)
AOF持久化優(yōu)缺點(diǎn)
- 與RDB持久化相對(duì)應(yīng),AOF的優(yōu)點(diǎn)在于支持秒級(jí)持久化、實(shí)時(shí)性好、兼容性好,缺點(diǎn)是文件大、恢復(fù)速度慢、對(duì)性能影響大。
- 對(duì)于AOF持久化,向硬盤(pán)寫(xiě)數(shù)據(jù)的頻率大大提高(everysec策略下為秒級(jí)),IO 壓力更大,甚至可能造成AOF追加阻塞問(wèn)題。
- AOF文件的重寫(xiě)與RDB的bgsave類(lèi)似,會(huì)有fork時(shí)的阻塞和子進(jìn)程的 IO 壓力問(wèn)題。相對(duì)來(lái)說(shuō),由于AOF向硬盤(pán)中寫(xiě)數(shù)據(jù)的頻率更高,因此對(duì)Redis主進(jìn)程性能的影響會(huì)更大。