Redis持久化

redis持久化是什么?

Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失。

所以redis持久化是 将内存中数据保存到磁盘中的使得数据可以持续保存的过程

redis持久化有哪些方案?

什么是RDB持久化?

RDB持久化是对某个时间点的redis数据(内存中的状态)进行压缩保存到磁盘上. 它可以手动执行,也可以在redis.conf中配置为定期执行.(相当于快照)

RDB持久化有哪些优点?

速度快,适合用来做备份,比如定期备份数据

适合用来恢复数据

恢复启动比AOF速度快

有哪些缺点?

可能导致数据丢失,比如突然断电(定期执行更是如此)

比较耗时,占用cpu

配置文件中如何配置?

 

dir /data/6379/ # 持久化文件目录

dbfilename  dbmp.rdb # 持久化文件名

 

每过900秒 有1个操作就进行持久化

 

save 900秒  1个修改类的操作

save 300秒  10个操作

save 60秒  10000个操作

 

RDB持久化的命令是什么?

    save

 

什么是AOF持久化?

      AOF是 (append only log file的缩写) 意思是它只记录服务执行的所有命令,当需要恢复时,重新执行一遍所有命令达到恢复数据的目的.

AOF持久化有什么优点?

      对性能消耗小,即使设置为每秒持久化

     最大程序保证数据不丢失

AOF持久化有什么缺点?

     文件可能非常大

     速度较慢

 

AOF持久化配置参数

appendonly yes

appendfsync  always    #总是修改类的操作

             everysec  #每秒做一次持久化

             no        #依赖于系统自带的缓存大小机制


如果我只设置了RDB模式的持久化,如何在不重启redis的情况下将持久化由RDB模式切换为AOF模式?

#先开启AOF持久化:

config set appendonly yes

# 再关闭RDB

config set save ""

 

#注意

此时RDB已经切换为AOF,但只是临时的,需要修改配置文件,否则重启后config set的配置会丢失

上一篇:Redis发布订阅

下一篇:Redis 主从复制