Redis是一个键值对数据库服务器,由于Redis是内存数据库,那么有很多内存的特点,例如掉电易失,或者进程退出,服务器中的数据也将消失不见,所以需要一种方法将数据从内存中写到磁盘,这一过程称之为数据持久化。
持久化有两种方式,一种是RDB,操作手段是将数据从内存中写到磁盘,生成一个经过压缩的RDB文件,另一种持久化方式叫AOF,是把Redis执行的命令行逐句记录下来,追加在类似日志的文件中。
RDB持久化
Redis中有两个命令可以用来生成RDB文件,一个是,另一个是。
SAVE是线程阻塞的,当调用这个命令后,服务器不再对外提供服务,直到内存中需要存储的数据全都持久化为RDB文件。
与不同,会创建一个子线程来完成数据持久化的任务,主服务器依旧对外提供服务。
无论是哪种方式,底层都是调用同一个函数rdb.c/rdbSave()来完成,下面是二者实现的伪代码:
领取专属 10元无门槛券
私享最新 技术干货