主从模式
redis三种集群模式
* 主从模式
* Sentinel模式
* Cluster模式
主从模式介绍
主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(slave)。
特点
主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据'同步'给从数据库
从数据库一般都是'只读'的,并且接收主数据库同步过来的数据
一个master可以拥有多个slave,但是一个slave只能对应'一个'master
slave挂了不影响其他slave的读和master的读和写,'重新启动后会将数据从master同步过来'(无论是rdb模式还是aof模式)
master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务
master挂了以后,'不会'在slave节点中重新选一个master
缺点:
从上面可以看出,master节点在主从模式中唯一,若master挂掉,则redis无法对外提供写服务
工作原理
当slave启动后,主动向master发送SYNC命令。(#每秒一次)
master接收到SYNC命令后在后台保存快照(RDB持久化)和缓存保存快照这段时间的命令,然后将保存的快照文件和缓存的命令发送给slave。
slave接收到快照文件和命令后加载快照文件和缓存的执行命令。
redis搭建
1.下载软件包
[root@db01 ~]# rz redis-3.2.12.tar.gz
或者
[root@db01 ~]# wget http://download.redis.io/releases/redis-3.2.12.tar.gz
2.安装依赖 (选)
[root@db01 ~]# yum install -y gcc gcc-c++
3.解压
[root@db01 ~]# tar xf redis-3.2.12.tar.gz -C /usr/local/
[root@db01 ~]# ln -s /usr/local/redis-3.2.12 /usr/local/redis
4.编译安装
[root@db01 ~]# cd /usr/local/redis && make && make install
5.编辑配置文件
#创建reids配置文件目录(位置随意)
[root@db01 redis]# mkdir /service/redis/6301 -p
#编写配置文件
[root@db01 redis]# vim /service/redis/6301/redis.conf
#监听地址(注意顺序)
bind 172.16.1.51 127.0.0.1
#端口
port 6301
#后台启动
daemonize yes
#pid文件位置
pidfile /service/redis/6301/redis_6301.pid
#日志级别
loglevel notice
#指定日志文件
logfile "/service/redis/6301/redis_6301.log"
#持久化数据文件存储位置
dir /service/redis/6301
#rdb持久化数据文件名
dbfilename dump.rdb
#Redis持久化(不能配置较短的时间)
save 900 1
save 300 10
save 60 10000
#Redis密码
requirepass 123
#主从复制中主库密码
masterauth 123
6.启动redis
指定配置文件启动
[root@db02 ~]# redis-server /service/redis/6301/redis.conf
7.连接redis
[root@db01 redis]# redis-cli -a 123 -p 6301
8.从库执行
[root@db02 ~]# redis-cli -a 123 -p 6302 SLAVEOF 172.16.1.52 6302
[root@db03 ~]# redis-cli -a 123 -p 6303 SLAVEOF 172.16.1.52 6302
#可以在配置文件中配置
replicaof 172.16.1.52 6302
注意
1.关闭防火墙
[root@db02 ~]# systemctl stop firewalld.service
2.关闭主从复制
127.0.0.1:6304> slaveof no one