redis持久化(缓存服务器不需要,内存数据库需要)
将数据从易丢失的内存放到能永久存储的设备(disk)上
redis持久化方式
1、RDB
默认情况下redis将数据保存在dump.rdb二进制文件中
配置文件
[root@master bin] vim redis.conf
策略都是用来触发RDB的存储机制(持久化机制)
手动关闭server服务(ctrl+c)——>RDB
策略:
1)自动:按照配置文件中的条件,满足就执行bgsave
2)手动:客户端发起save,bgsave命令
RDB会造成数据丢失,无法确定丢失的数据量,最优情况下只丢一条
redis持久化——RDB
优点:完全备份
紧凑的单一文件
缺点:folk过程非常耗时
2、AOF
采用追加的方式,默认文件appendonly.aof,记录所有写操作命令
写入机制:先将内容放入内存缓冲区(buffer),等缓冲区被填满,自动写入
写入磁盘策略:
1)Always:每写入一个命令,就调用,不会丢数据(速度最慢)
2)Everysec(默认):一秒调用一次,最多丢一秒的数据
3)No:由操作系统决定何时调用
策略:
1)自动:配置文件中选项,自动执行bgrewriteaof命令
2)手动:客户端发起bgrewriteaof
redis-server redis.conf(读配置文件启动)
(子进程—>开启一个临时文件—>重写合并(原来的AOF文件,新写的AOF文件)—>替换原AOF文件)
redis持久化——AOF
优点:写入机制,每秒执行,最多丢失一条数据
重写机制,优化AOF文件
缺点:相同数据集,AOF文件体积比RDB文件大很多
恢复数据库速度比RDB慢