本文小编根据自己对redis的理解!
首先,什么是redis,我们先从它的数据结构看,它的本质其是一个Key-Value的内存数据库,因为位置是在内存中,并且直接是在内存中操作的,所以它的性能很高,每秒可以处理10万次读写。它的出色的地方还有它支持多种数据结构的存储,包括字符串,哈希表,链表和集合等,缺点也很明显,因为是在内存中,这就导致数据的大小以及数量受到了限制,不能作为海量数据的读写操作
之后我们在来说一说redis的主从复制
1,负载均衡,在redis采用主从复制之后,可以用主数据库进行写操作,在从数据库中进行读操作
2,故障的快速恢复,当主节点发生问题之后,不能进行服务,可以有从节点进行提供服务
3,高可用的基础,主从复制是哨兵和集群能够实施的基础
4,实现了除持久化的数据备份外的另一种方式
下面进入正题
1,首先服务器向主服务器发送SYNC建立连接
2,生成快照文件(rdb),创建缓冲区。rdb的原理,使用操作系统的copy on wirte机制完成,主服务器收到命令之后开始执行BGSAVE命令,此时会创建一个子线程,子线程拥有和父线程一样大的内存空间,之后子线程开始进行读写操作,同时父线程因为是BGSAVE命令,所以父线程不会阻塞,而是继续处理打过来的请求,这时会将快照文件生成的所有的写操作让如缓冲区里面。
3,从数据库在本地加载快照文件,加载完成之后,主库在把缓冲区的写操作命令发给从库,此时从库在执行这些操作,这是主库和从库的数据就是实现了同步,但是写操作只能有主库处理,操作处理完成之后,会将写操作发给从库,从库在处理写操作,此时就实现了增量同步。
好了,以上就是小编对redis的主从复制的全部理解。希望对大家有用!
大家也可以点点关注,我会定期分享一些我对技术的理解!