redis持久化是什么?
Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失。
所以redis持久化是 将内存中数据保存到磁盘中的使得数据可以持续保存的过程
redis持久化有哪些方案?
- RDB (redis data backup?)
- AOF (append only log file)
什么是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的配置会丢失