redis 为了数据安全,会把本身数据以文件形式保存到硬盘中一份,在服务器重启之后会把硬盘的数据自动恢复到 redis 内存里面。
保存方式 1 和方式 2 是互补形式存在,方式 2 需要修改配置文件手动开启。
保存方式 1 和方式 2 是互补形式存在,方式 2 需要修改配置文件手动开启。
常用指令:lastsave 返回上次成功保存到磁盘的 unix 时间戳
shutdown 同步保存到服务器并关闭 redis 服务器
1、snap shotting 快照持久化
该持久化默认开启,一次性把 redis 中全部的数据备份一份到硬盘中,如果数据非常多(10-20G)就不适合频繁该持久化操作。
运行中备份的数据文件,保存在安装时创建的操作目录里面(usr/local/redis)dump.rdb
是根据 redis.conf 配置文件做的持久化:save 900 1 900秒内1个 key 发生改变就发起一次快照保存
save 300 10 300秒内10个 key 发生改变就发起一次快照保存
save 60 10000 60秒内10000个 key 发生改变就发起一次快照保存
三个 save 是数据修改的频率高,备份频率也高。数据修改频率低,备份频率也低。
备份文件名和位置在 redis.conf :dbfilename dump.rdb 备份文件名
dir ./ 备份文件存贮位置
1.1、手动发起快照保存持久化文件:
./redis-cli -h 127.0.0.1 -p 6379 bgsave //异步保存数据到磁盘。在redis操作目录下进行。
本机备份 -h -p 可省略,可指定其他 ip
2、AOF 持久化
appendonly yes 开启 aof 持久化(会清空 redis 内部的所有数据)
appendfilename appendonly.aof 前面 # 号去掉,存储数据的文件名
(生成在当前目录下,因为前面 dir已经限制住了)
kill -9 进程号 杀死 redis 进程
./redis-server redis.conf 修改配置文件后重启 redis 服务器
备份方式:
appendfsync always 每修改一次发起一次备份(数据安全,但占资源、内存消耗大)
appendfsync everysec 默认 每秒备份一次(程序一秒内不管修改多少,只备份一次。性能高)
appendfsync no 根据当前服务器状态做备份,如果服务器修改频次高,不做备份。
(不安全,性能最优)
./redis-cli -h ip -p 6379 bgrewriteaof 当 aof 日志文件过大时优化压缩日志文件(本机可不写-h、-p)