娃哈哈好喝-真的!
技术够用就行,吃好喝好睡好!

Redis数据库持久化方案 及数据恢复

redis的持久化方案有2种,分别是RDB和AOF,下面分别介绍一下这两种方案的备份和恢复方式。

一、RDB RDB方式有两种保存方式,分别为save和bgsave,两者的区别就在于save是阻塞型,当save指令发起时redis会优先处理save命令,而其他读写请求会被暂停直到save命令操作完成。bgsave则是非阻塞型,它会新打开一个进程来处理bgsave操作,而其他正常的读写请求不会受到影响。

1.1、save方法:

修改redis配置文件,找到如下配置:这是RDB方法的全局配置,无论是save还是bgsave都使用这个配置。

dbfilename dump.rdb    //保存的文件名
dir /data/redis/       //保存文件的路径

保存后重启服务,在/data/redis目录下会自动创建dump.rdb文件。保存规则会按照上面的设置来保存。或者手动执行保存:

[root@nginx redis]# redis-cli
127.0.0.1:6379> save
OK
127.0.0.1:6379>

1.2、bgsave方法:

和上文配置相同,只是需要添加如下配置:此方式为永久生效,但需要重启服务。

save 900 1             //900秒内如果有超过1个key被修改则发起保存快照
save 300 10           //300秒内如果有超过10个key被修改则发起保存快照
save 60 10000         //60秒内如果有超过1000个key被修改则发起保存快照

还可以通过命令行来设置开启,此方式为临时生效,无需重启即可生效。

[root@nginx ~]# redis-cli
127.0.0.1:6379> config set save "900 1"
OK
127.0.0.1:6379>

系统会按照设置的规则进行保存。

永久关闭方法将配置文件种的save注释掉就可以了,临时关闭方法:

[root@nginx ~]# redis-cli
127.0.0.1:6379> config set save ""
OK
127.0.0.1:6379>

二、AOF 永久生效方式还是修改配置文件实现:

appendonly yes                     //开启AOF日志功能
appendfilename "appendonly.aof"   //AOF文件名称
#appendfsync always               //每一个写入一次,数据保存完整,但影响性能
appendfsync everysec               //每一秒钟保存一次,会丢失1秒数据
# appendfsync no                   //由操作系统决定保存方式,取决于系统的缓冲区大小
auto-aof-rewrite-min-size 64mb     //当AOF文件至少超过64MB时重写

AOF文件保存的路径和RDB文件在相同目录。

临时生效方式:

[root@nginx ~]# redis-cli 
127.0.0.1:6379> config set appendonly yes
OK
127.0.0.1:6379>

永久关闭方式也是修改配置文件重启服务,临时关闭只需要执行如上相反的操作:

[root@nginx ~]# redis-cli 
127.0.0.1:6379> config set appendonly no
OK
127.0.0.1:6379>

三、数据恢复 redis默认启动会从备份目录寻找备份文件来恢复数据,如果没有备份文件则数据为空。

如果RDB文件和AOF文件同时存在就要看配置文件中是否将AOF功能开启,如果开启了AOF日志功能,则会从AOF文件恢复,如果是关闭的就会从RDB文件恢复,取决于如下配置:

appendonly yes

yes:开启AOF,从AOF文件恢复数据

no:关闭AOF,从RDB文件恢复数据

赞(0)
未经允许不得转载:娃哈哈好喝 » Redis数据库持久化方案 及数据恢复
分享到: 更多 (0)