Redis RDB快速持久化的另一种方式(redis的rdb是什么)

2023-05-14 16:31:58 方式 持久 快速

Redis RDB:快速持久化的另一种方式

Redis是一个开源的内存数据结构存储系统,其主要优点是能够快速读取和写入数据。但是,这也意味着如果服务器意外崩溃或者重启,所有的数据也会消失。因此,Redis提供了两种持久化方式,一种是RDB(redis database)、另一种是AOF(append only file)。本文将着重介绍RDB持久化方式。

什么是RDB?

RDB持久化方式是Redis默认的持久化方式。当开启了RDB持久化功能后,Redis会在后台将内存中的数据以快照的方式写入到磁盘中的一个RDB文件。RDB文件是一个二进制文件,包含了Redis的数据状态,因此可以在Redis停机、重启、升级等操作后,一次性读入内存,恢复数据。

RDB的优点?

1.效率高

相对于AOF方式,RDB有更好的性能。因为RDB是将整个Redis数据状态进行持久化,所以在一些对性能有较高要求的场景,如数据备份等,RDB方式相对更加合适。同时,RDB方式在Redis重启时加载快速,可以节省很多时间。

2.灵活性强

使用RDB方式备份Redis数据不需要连接Redis实例,备份过程不会影响Redis实例的正常运行,也不需要通过专有工具进行备份,使得备份和恢复的操作更加灵活。

3.可扩展性好

RDB文件可以加密压缩,同时也支持传输到另一个Redis实例,从而实现了在多台服务器之间复制Redis数据状态的目的。这为Redis的数据分布式部署提供了支持,也为实现高可用性、读写分离、容灾备份等提供了条件。

如何使用RDB?

编辑Redis配置文件redis.conf,将rdb的选项打开:

save 900 1

save 300 10

save 60 10000

其中,每行表示一个触发条件,意思是900秒内有至少一个key发生更改,就会触发一次快照生成,同理的还有300秒和60秒内,比较不同的是在不同的条件下,生成快照的时间间隔不同,这也是Redis持久化的核心。

另外在redis.conf文件中也可以设置RDB文件和AOF文件的文件名称和路径:

dir /var/lib/redis

dbfilename dump.rdb

appendonly yes

appendfilename “appendonly.aof”

其中dir表示RDB文件和AOF文件的保存路径,dbfilename表示RDB文件的文件名,appendonly表示是否开启AOF持久化方式,appendfilename则表示另一个AOF的文件名。

你也可以用命令:

$ redis-cli –h 127.0.0.1 –p 6379 –a password

127.0.0.1:6379> CONFIG SET dbfilename “mydb.rdb”

OK

来动态设置RDB文件的文件名。

快照与增量备份的区别?

快照backup,即完全备份,每次备份时都会把整个数据进行一次备份,保存到RDB文件中,然后再保存更新的aof命令到AOF文件中。

增量备份dump,即只备份增量更新的数据,每个数据文件都包含之前的所有修改操作,因此可用于增量备份和恢复。随着Redis的不断更新,dump命令也越来越多,并且会越来越占用内存。

结论

RDB持久化方式相对简单明了,在可以接受数据丢失的前提下,它的性能优势更加明显。同时,RDB也不需要预先开启,可以动态调整,因此更加常用。

为了更好的保护数据,有必要将AOF和RDB持久化方式同时开启,中和各自优缺点,提高数据的可靠性。

相关文章