您的位置:首页 > 数据库 > Redis

redis中的数据快照、AOF、数据恢复、主从复制介绍及使用

2013-11-18 16:28 621 查看
redis中的数据快照、AOF、数据恢复、主从复制介绍及使用

1.数据快照配置

save 900 1

save 300 10

save 60 10000

以上在redis.conf中的配置指出在多长时间内,有多少次更新操作,就将数据同步到数据文件,这个可以多个条件配合.上面的含义是900秒后有一个key发生改变就执行save,300秒后有10个key发生改变执行save,60秒有10000个key发生改变执行save

2.Redis AOF

数据快照的缺点是持久化之后如果出现crash则会丢失一段数据,因此redis作者增加了另外一种追加式的操作日志记录,叫append only file,其日志文件以aof结尾,我们一般称为aof文件.要开启aof日志的记录,需要在配置文件中进行如下设置:

appendonly yes

appendonly配置如果不开启,可能会在断电时导致一段时间内的数据丢失.因为redis本身同步数据文件是按save条件来同步的,所以有的数据会在一段时间内只存在于内存中.

appendfsync no/always/everysec

1. no:表示等操作系统进行数据缓存同步到磁盘.

2. always:表示每次更新操作后手动调用fsync() 将数据写到磁盘.

3. everysec:表示每秒同步一次.一般用everysec

AOF文件只增不减会导致文件越来越大,重写过程如下:

1. Redis通过fork产生子进程.

2. 子进程将当前所有数据写入一个临时文件.

3. 父子进程是并行执行的,在子进程遍历并写临时文件的时候,父进程在照常接收请求,处理请求,写AOF,不过这时他是把新来的AOF写在一个缓冲区中.

4. 子进程写完临时文件后就会退出.这时父进程会接收到子进程退出的消息,他会把自己现在收集在缓冲区中的所有AOF追加在临时文件中.

5. 最后把临时文件rename一下,改名为appendonly.aof, 这时原来的aof文件被覆盖.整个过程完成.

3.Redis数据恢复

当redis服务器挂掉时,重启时将按以下优先级恢复数据到内存种:

1. 如果只配置了AOF,重启时加载AOF文件恢复数据.

2. 如果同时配置了RBD和AOF,启动时只加载AOF文件恢复数据.

3. 如果只配置了㻾DB,启动时将加载dump文件恢复数据.

Redis主从复制

Redis主从复制配置

Master/Slave配置:

Master IP:175.41.209.118

Master Redis Server Port:6379

Slave配置很简单,只需要在slave服务器的redis.conf加入:

slaveof 175.41.209.118 6379

启动master和slave,然后写入数据到master,读取slave,可

以看到数据被复制到slave了

4.Redis主从复制过程

配置好slave后,slave与master建立连接,然后发送sync命令. 无论是第一次连接还是重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存. 后台进程完成写文件后,master就发送文件给slave,slave将文件保存到硬盘上,再加载到内存中, 接着master就会把缓存的命令转发给slave,后续master将收到的写命令发送给slave. 如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像, 然后发送给所有的slave

Redis主从复制特点

1. master可以拥有多个slave.

2. 多个slave可以连接同一个master外,还可以连接到其他slave.

3. 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求.

4. 可以在master禁用数据持久化,注释掉master配置文件中的所有save配置,只需在slave上配置数据持久化.

5. 提高系统的伸缩性

推荐主从模式A --> B --> C单向链表式

A为master读写都直接对A操作,A节点不配置数据持久化

B 节点也不配置数据持久化

C 节点配置数据持久化

这样

1. 当A节点出现故障,将读写操作切入到B节点,然后将A节点修复后追加到C节点后, 关闭C节点的数据持久化,将追加到C节点后的A节点开启数据持久化。

2. 当B节点或者C节点出现故障,直接修复该节点,并按照最初配置启动即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息