1、持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障,如下图
2、 说明:
- 主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务。
- 主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。
- 只有一个主redis,可以有多个从redis。
- 主从复制不会阻塞master,在同步数据时,master 可以继续处理client 请求
3、主节点的配置
无需特殊配置,保持和之前的单机配置方式。
从redis配置
- :复制出一个从机
[root@bruce1 myapps]# cp redis/ redis1 -r
[root@bruce1 myapps]# ll
总用量 40
drwxr-xr-x. 3 root root 4096 7月 1 09:26 redis
drwxr-xr-x. 3 root root 4096 7月 1 09:27 redis1
drwxr-xr-x. 9 root root 4096 6月 28 23:26 tomcat
- :修改从机的redis.conf
语法:slaveof <masterip> <masterport>
- :修改从机的port地址为6380
在从机redis.conf中修改
- :清除从机中的持久化文件
[root@bruce1 bin]# rm -rf appendonly.aof dump.rdb
[root@bruce1 bin]# ll
总用量 15440
-rwxr-xr-x. 1 root root 4588902 7月 1 09:27 redis-benchmark
-rwxr-xr-x. 1 root root 22225 7月 1 09:27 redis-check-aof
-rwxr-xr-x. 1 root root 45443 7月 1 09:27 redis-check-dump
-rwxr-xr-x. 1 root root 4691809 7月 1 09:27 redis-cli
lrwxrwxrwx. 1 root root 12 7月 1 09:27 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 6450337 7月 1 09:27 redis-server
- :启动从机
[root@bruce1 redis1]# ./bin/redis-server ./redis.conf
- :启动6380的客户端
[root@bruce1 redis1]# ./bin/redis-cli -p 6380
127.0.0.1:6380> keys *
1) "mylist"
2) "num"
3) "bookCate1"
4) "newbook"
5) "company"
127.0.0.1:6380>
- 主机一旦发生增删改操作,那么从机会将数据同步到从机中
- 从机不能执行写操作
127.0.0.1:6380> get username
"hehe"
127.0.0.1:6380> set username haha
(error) READONLY You can't write against a read only slave.