php redis 恢复备份,[Redis学习教程3]之Redis的快照持久化和AOF持久化

Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据回复到内存(redis)里面。数据保存到硬盘的过程就称为“持久化”。

一、snap shotting 快照持久化

该持久化默认开启,一次性把redis的所有数据全部保存到硬盘中一份。如果数据非常多(10G-20G)就不适合频繁进行该持久化操作。

默认保存文件:dumo.rdb。

redis.conf配置:

1、快照保存规律:(增,删,改)不包括查询。

save 900s 1K 900内有1K发生修改,快照就保存。

save 300s 10K 300内有10K发生修改,快照就保存。

save 60s 10000K 1000内有10000K发生修改,快照就保存。

以上三个save的意思:

数据修改的频率高,备份的频率也高。

数据修改的频率低,备份的频率也低。

2、dbfilename dump.rdb  备份文件的名称

3、dir ./               备份文件的地址

二、手动发起快照持久化

1、手动进行快照持久化

指令:./redis.cli bgsave

三、append only file (AOF持久化,精细持久化)

1、本质:把用户执行的每个“写”指令(添加,修改,删除)都备份到文件中,还原数据的时候就是执行具体写指令而已。

2、开启AOF持久化(会清空redis之前的数据)

redis.conf配置文件:

1).appendonly no -> appendonly yes

2).去掉 appendfilename appendonly.aof 前面 # 开启保存文件

3).配置文件被修改,需要删除旧进程;再根据新进程配置文件,启动新进程。

ps -A | grep redis 查看进程

kill -9 7287 停止进程

./redis-server redis.conf 启动进程

4).新进程启动完毕之后,可以在看到设置指定保存路径里面多了aooendonly.aof文件。

3、redis的持久化方式 (redis.conf配置文件中)

appendfaync always // 每次收到写的指令就立即的强制写入磁盘,最慢,不推荐使用。

appendfaync ecerysec // 每秒强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐。(默认)

appendfaync no // 完全依赖os,性能最好,持久化没保证。不推荐。

4、为aof备份文件做优化处理

例如:多个set变成一个set指令

指令:./redis-cli barewriteaof 压缩aof备份文件的大小

c38d9b8aa513e5e69af8ded8809e03df.png

四、redis持久化相关的指令

1.bgsave 异步保存数据到磁盘。(快照持久化)

2.lastsave 返回上次成功保存到磁盘的Unix时间戳。

3.shutdown 同步保存到服务器并关闭redis服务器。

4.bgrewriteaof 当日志文件过长时,优化aof日志文件存储。

5. ./redis-cli bgrewriteaof

6. ./redis-cli bgsave

7. ./redis-cli -h 127.0.0.1 -p 6379 bgsave // 手动发起快照

快照持久化和AOF持久化是相辅相成的,在数据还原的时候,将快照持久化和AOF持久化都要进行数据还原。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值