redis是将数据存储在内存上的,一旦断电,或者因为机器故障使redis服务宕机,那么存储的内容就会消失

1.save指令进行手动RDB过程2.bgsave指令进行手动RDB过程3.save配置进行自动RDB过程4.RDB优缺点
1.save指令进行手动RDB过程
save
dbfilename filename
dir path
rdbcompression yes|no
rdbchecksum yes|no
bgsave
stop-writes-on-bgsave-error yes|no
dbfilename filenamedir pathrdbcompression yes|nordbchecksum yes|no
save second changes
second:监控时间范围changes:监控key的变化量
save 900 1save 300 10save 60 10000
dbfilename filenamedir pathrdbcompression yes|nordbchecksum yes|nostop-writes-on-bgsave-error yes|no
RDB是一个紧凑压缩的二进制文件,存储效率较高RDB内部存储的是redis在某个 时间点 的数据快照,非常适合用于数据备份,全量复制等场景RDB恢复数据的速度要比AOF快很多应用:服务器中每X小时执行bgsave备份,并将RDB文件拷贝到远程机器中,用于灾难恢复。
RDB方式无论是执行指令还是利用配置,无法做到实时持久化,具有较大的可能性丢失数据bgsave指令每次运行要执行fork操作创建子进程,要牺牲掉一些性能Redis的众多版本中未进行RDB文件格式的版本统一,有可能出现各版本服务之间数据格式无法兼容现象
1.AOF概念2.AOF执行策略3.AOF重写4.AOF的工作流程以及重写的工作流程
appendonly yes | no
appendfilename filename
dir
appendfsync always | everysec | no
always(每次):每次写入操作均同步到AOF文件中数据零误差 , 性能较低 ,不建议使用。
everysec(每秒):每秒将缓冲区中的指令同步到AOF文件中,在系统突然宕机的情况下丢失1秒内的数据数据 准确性较高 , 性能较高 ,建议使用,也是默认配置
no(系统控制):由操作系统控制每次同步到AOF文件的周期整体过程 不可控
随着命令不断写入AOF,文件会越来越大,为了解决这个问题,Redis引入了AOF重写机制压缩文件体积。AOF文件重写是将Redis进程内的数据转化为写命令同步到新AOF文件的过程。简单说就是将对同一个数据的若干个条命令执行结 果转化成最终结果数据对应的指令进行记录。
降低磁盘占用量,提高磁盘利用率提高持久化效率,降低持久化写时间,提高IO性能降低数据恢复用时,提高数据恢复效率 AOF
1.进程内具有时效性的数据,并且数据已超时将不再写入文件2.非写入类的无效指令将被忽略,只保留最终数据的写入命令如del key1、 hdel key2、srem key3、set key4 111、set key4 222等如select指令虽然不更改数据,但是更改了数据的存储位置,此类命令同样需要记录3.对同一数据的多条写命令合并为一条命令如lpush list1 a、lpush list1 b、 lpush list1 c 可以转化为:lpush list1 a b c。为防止数据量过大造成客户端缓冲区溢出,对list、set、hash、zset等类型,每条指令最多写入64个元素
bgrewriteaof
auto-aof-rewrite-min-size sizeauto-aof-rewrite-percentage percentage


