广元做网站站排名,网站建设 电话营销,最简单的网页,外贸网站建设公司 迅当网redis备份概念
Redis所有数据都是保存在内存中#xff0c;Redis数据备份可以定期的通过异步方式保存到磁盘上#xff0c;该方式称为半持久化模式#xff0c;如果每一次数据变化都写入aof文件里面#xff0c;则称为全持久化模式。同时还可以基于Redis主从复制实现Redis备份…redis备份概念
Redis所有数据都是保存在内存中Redis数据备份可以定期的通过异步方式保存到磁盘上该方式称为半持久化模式如果每一次数据变化都写入aof文件里面则称为全持久化模式。同时还可以基于Redis主从复制实现Redis备份与恢复。
redis备份模式
半持久化rdb模式全持久化aof模式redis主从复制
1. 半持久化RDB模式
半持久化RDB模式是Redis备份默认方式是通过快照snapshotting完成的当符合在Redis.conf配置文件中设置的条件时Redis会自动将内存中的所有数据进行快照并存储在硬盘上完成数据备份。Redis启动后会读取RDB快照文件将数据从硬盘载入到内存根据数据量大小与结构和服务器性能不同通常将一个记录一千万个字符串类型键、大小为1GB的快照文件载入到内存中需花费2030秒钟。
1.1. RDB半持久化实现过程
Redis使用fork函数复制写时复制一份当前进程父进程的副本子进程父进程继续接收并处理客户端发来的命令而子进程开始将内存中的数据写入硬盘中的临时文件当子进程写完所有数据后会用该临时文件替换旧的RDB文件至此一次快照操作完成。
1. 2. 开启rdb半持久化
Redis进行RDB快照的条件由用户在配置文件中自定义由两个参数构成时间和改动的键的个数。当在指定的时间内被更改的键的个数大于指定的数值时就会进行快照。在配置文件中已经预置了3个条件rdb半持久化常用参数
save 900 1 ---900秒内有1个键发生变化开始快照
save 300 10 ---300秒内有10个键发生变化开始快照
save 60 10000 ---60秒内有10000个键发生变化开始快照
//快速理解可以从下往上去看即使只有一个键发生变化最后也会执行900
秒的规则。
//后台存储发生故障时客户端停止写入
stop-writes-on-bgsave-error yes
//在存储过程中启动压缩
rdbcompression yes
//启动redis时是否检查rdb数据库的完整性
rdbchecksum yes
//rdb数据库文件的名字可自定义
dbfilename dump.rdb
//rdb数据库存放路径可以自定义
dir /var/lib/redis2. 全持久化AOF模式
如果数据很重要无法承受任何损失可以考虑使用AOF方式进行持久化默认Redis没有开启AOF(append only file)方式的全持久化模式。
2.1. aof持久化实现过程
开启AOF持久化后每执行一条更改Redis中数据的命令Redis会将该命令写入硬盘中的AOF文件。在启动时Redis会逐个执行AOF文件中的命令来将硬盘中的数据载入到内存中载入的速度相较RDB会慢一些。
2.2. aof持久化常用参数
//开启aof持久化默认为禁止no
appendonly yes//指定aof文件名可自定义
appendfilename appendonly.aof//每执行一条命令即写入磁盘
#appendfsync always//每秒同步内存数据到磁盘
appendfsync everysec//设置为no,让写入动作交由操作系统完成同步的频率会相对比较低不建议
# appendfsync no//在rdb写磁盘过程中是否需要停止aof默认是不停如果负载较高建议停
止。
//这个时候数据也不会丢失在暂时存在内存队列rdb数据写完后aof继续。
no-appendfsync-on-rewrite no//aof文件大小相比上次文件大小增长100%时重写
auto-aof-rewrite-percentage 100//aof文件至少超过64M时重写
auto-aof-rewrite-min-size 64mb//redis在恢复时会忽略最后一条可能存在问题的指令因为断电等原因导致的一些错误指令
aof-load-truncated yes