一、Redis主从复制的概念:是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。
1、redis作用:(1)数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
(2)故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
(3)负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
(4)高可用:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
2、redis缺点:(1)故障恢复无法自动化;
(2)操作无法负载均衡;
(3)存储能力受到单机的限制。
二、安装Redis
yum -y install epel-release
yum -y install redis
cd /usr/local
mkdir redis_m_s
mkdir master_conf slave_conf
cp /etc/redis.conf master_conf/
cp /etc/redis.conf slave_conf/
vim /etc/redis.conf master_conf slave_conf 进行配置
master_conf配置
bind 0.0.0.0
port 6379
protected-mode no
daemonize yes
#slaveof 192.168.115.150 6379
找到slaveof 192.168.115.150 6379注释掉
slave_conf配置
bind 0.0.0.0
port 6380
protected-mode no
slaveof 192.168.115.150 6379
daemonize yes
然后启动 redis redis-server /usr/local/redis_m_s/master_conf/redis.conf
redis-server /usr/local/redis_m_s/slave_conf/redis.conf
使用 netstat -antpu | grep redis查看有没有端口信息
登入进去 使用role 查看master信息
哨兵模式概念:是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 Master 并将所有 Slave 连接到新的 Master。所以整个运行哨兵的集群的数量不得少于3个节点。
vim /etc/redis-sentinel.conf
port 26379
bind 0.0.0.0
sentinel monitor mymaster 192.168.163.10 6379 2
daemonize yes
protected-mode no
redis-sentinel.conf1的port不改 其余都要改掉
启动命令 redis-sentinel 配置文件路径
停止master后,slave会通过选举产生新的master 但是选举时间长
哨兵配置文件会自动修改监听的master节点地址为新的master节点地址
概念:Redis3.0版本以上开始支持cluster,采用的是hashslot(hash槽),可以将多个Redis实例整合在一起,形成一个群集,也就是将数据分散到群集的多台机器上。
原理;Redis Cluster是一个无中心的结构,每个节点都保存数据和整个群集的状态。每个节点都会保存其他节点的信息,知道其他节点所负责的槽,并且会与其他节点定时发送心跳信息,能够及时感知群集中异常的节点。
一、redis安装
yum -y install epel-release
yum -y install redis
mkdir /etc/redis
mv/etc/redis.conf /etc/redis/6379.conf
cd /etc/redis
mkdir {6380..6381}.conf
配置文件
vim /etc/redis/6379.conf
port 【6379~6384】
cluster-enabled yes
cluster-config-file nodes-【6379~6384】.conf
cluster-node-timeout 15000
启动 redis-server /etc/redis/6379.conf
redis-cli -p 6379
将其他节点加入集群
CLUSTER MEET 192.168.115.150 6380
CLUSTER MEET 192.168.115.150 6381
CLUSTER MEET 192.168.115.150 6382
CLUSTER MEET 192.168.115.150 6383
CLUSTER MEET 192.168.115.150 6384
分配slot
redis-cli -p 6379 cluster addslots {0..5461}
redis-cli -p 6381 cluster addslots {5462..10922}
redis-cli -p 6383 cluster addslots {10923..16383}
建立主从关系
redis-cli -p 6380 cluster replicate 节点id
查看节点 idcluster nodes
查看集群状态 cluster info
在主上创建一个rgq
去从进行验证