Redis如何做持久化
持久化: 把数据存放到断电也不会丢失的设备中,例如: 文件, mysql
如何实现持久化
快照(RDB)
是redis默认做持久化的方式
实现原理:
redis是由C语言实现的,fork函数,会把主进程复制一个子进程, 子进程会把内存的数据依次遍历出来,存放到配置指定的二进制文件dump.rdb中。
实现快照:
只要更改配置文件,默认提供额三种级别的快照形式
优点:
- 使用起来简单,只要修改配置文件,把所有的数据存放到一个文件中,
- 文件以二进制形式存放,读写很快
缺点:
断电容易造成数据丢失,断电的时间段内的数据不能备份
AOF(Append only file),
以日志文件追加的方式实现的
实现原理: 把所有内存中数据以writer追加的方法写道日志文件中。
实现: 修改配置文件,
优点:
- 使用起来简单,只要修改配置文件, 日志文件是单独文件
- 可以修改日志文件得大小:BGREWRITERAOF
缺点:
- 大小的限制,