0.本文目录
1.开篇明志
持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障。
如下图所示:
2.建立副本
说明:
主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务。
主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。
只有一个主redis,可以有多个从redis。
主从复制不会阻塞master,在同步数据时,master 可以继续处理client 请求
一个redis可以既是主又是从,如下图:
下面动手模拟建立 主从数据库吧:
-
主机配置
这里不需要主机配置, 直接使用现有的Redis数据库作为主机,
主机默认端口6379, 本地主机ip地址 127.0.0.1- 启动主机
./redis-server redis.conf
- 从机配置
我的Redis数据库在/usr/local/redis
所以,直接复制redis目录, 将新复制的数据库改名为 redis_slave
主: /usr/local/redis
从: /usr/local/redis_slave
- 修改从机的port地址为6380
port 6380
- 修改从机的redis.conf
slaveof 127.0.0.1 6379
- 清除从机中的持久化文件
rm -rf appendonly.aof dump.rdb
- 启动从机
切换到/usr/local/redis_slave/bin/
目录下:
./redis-server redis.conf
主机在从机启动之后的变化:
从机启动之后与主机请求变化:
//从机 与 主机 建立连接
Connecting to MASTER 127.0.0.1:6379
//主从 非阻塞同步开始
MASTER <-> SLAVE sync started