Redis数据库备份与恢复

Redis全部数据都是保存在内存中。下面讲述三种备份方式:redis

1.按期地经过异步方式保存到磁盘上,该方式称为半持久化模式。数据库

1)半持久化RDB模式也是Redis备份默认方式,是经过快照完成的,当知足redis.conf配置文件中设置的相关条件时,Redis会自动将内存中的全部数据进行快照并存储在硬盘上,完成数据备份。vim

2)RDB快照的条件由用户在redis.conf配置文件中自定义,由时间和改动的关键字数来肯定,当在指定的时间内被更改的键的个数大于指定的数值时就会时进行快照。如下是预置的3个条件,只要知足其中一个条件,就会进行快照。安全

save 900 1 #刷新快照到硬盘中,必须知足二者要求才会触发,即900秒以后至少1个关键字发生变化。
save 300 10 #必须是300秒以后至少10个关键字发生变化。
save 60 10000 #必须是60秒以后至少10000个关键字发生变化。
服务器

3)若是禁用自动快照,将全部save参数删除或注释便可。app

4)获取redis数据保存的路径:异步

127.0.0.1:6379> config get diride

"dir"测试

"/usr/local/redis/bin"spa

5)建议修改数据保存路径: # vim redis.conf 

dir ./  #默认所在安装的目录

dir /data/redis   #修改为新的路径

操做技能:要先建立好保存路径,配置文件才会生效,不然会宕掉redis服务

[root@redis_master /]# mkdir -p /data/redis 

6)测试修改数据存放效果

127.0.0.1:6379> config get dir

 "dir"

"/data/redis"

7)RDB方式实现持久化,一旦Redis异常退出,就会丢失最后次快照之后更改的全部数据。
2.全持久化AOF模式

1)若是数据很重要,不能损失任数据,能够考虑使用AOF方式进行持久化,默认Redis没有开启AOF方式的全持久化模式。

2)容许同时开启AOF和RDB,即保证了数据安全又使得进行备份等操做十分容易。

3)参数配置详解:

appendonly yes #开启AOF持久化功能

appendifilename appendonly.aof #保存文件名

appendfsync always #每次执行写入都会执行同步,最安全也最慢

auto-aof-rewirte-percentage 100 #参数的意义时当目前的AOF文件大小超过上一次AOF重写时的文件大小的百分之多少时会再次进行重写,若是以前没有重写过,则以启动时的AOF文件大小为依据。

auto-aof-rewrite-min-size 64MB #限制容许重写的AOF文件最小的大小。

appendsync everysec  #每秒执行一次同步操做。

appendsync no  #不主动进行同步操做,每30s一次,最快也不最安全。

3.Redis主从复制备份

1)经过持久化功能,保证了即便服务器重启的状况下也不会损失或少许损失数据。可是因为数据是存储在一台服务器上的,若是这台服务器的硬盘出现故障,也会致使数据丢失。

2)为了不单点故障,将数据库复制多个副本以部署在不一样的服务器上,即便有一台服务器出现故障其余服务器依然能够继续提供服务,这就要求当一台服务器上的数据库更新后,能够自动将更新的数据同步到其余服务器上。

3)能够基于主从同步实现读写分离以提升服务器的负载能力。

4)主数据库只进行操做,而从数据库负责读操做。

5)能够基于LVS+keepalived对Redis实现均衡和高可用。

6)主库崩溃时能够降为从库,从库也能够升级成为主库。

相关文章
相关标签/搜索