Redis主从、哨兵模式的部署

Redis主从、哨兵模式的部署

1 Redis单机部署

实验环境:
(1)安装依赖:yum install gcc-c++.x86_64 -y
(2)下载redis安装包并编译:

redis-5.0.8.tar.gz
tar zxf redis-5.0.8.tar.gz
cd redis-5.0.8/
make

在这里插入图片描述
在这里插入图片描述

  • 安装: make install

在这里插入图片描述

  • 查看redis-cli能否使用:
which redis-cli

在这里插入图片描述
在这里插入图片描述

  • 查看redis的6379端口:netstat -antlp |grep :6379

在这里插入图片描述

  • 修改redis的配置文件:vim /etc/redis/6379.conf

在这里插入图片描述
(3)启动redis实例: /etc/init.d/redis_6379 restart

  • 查看redis的监听端口: netstat -antlp |grep :6379

在这里插入图片描述

  • 查看redis的信息,redis的节点角色是master
redis-cli
info

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2 主从模式

一主多从:master读写,slave:读

原理:
(1)slave启动后,主动向master发送SYNC命令;
(2)master接收到SYNC命令后在后台保存快照(RDB持久化)和缓存保存快照这段时间的命令并发送给slave;
(3)slave接收到快照文件和命令后加载快照文件和缓存的执行命令;
(4)复制初始化后,master每次接收到的写命令都会同步发送给slave,保证主从数据一致性;

缺点:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。

主从模式的部署

(1)在server2部署redis
(2)修改配置文件将其作为server1的slave:

  • 编辑配置文件:vim /etc/redis/6379.conf

在这里插入图片描述
(3)server2启动redis: /etc/init.d/redis_6379 restart

(4)测试:在server1连接redis的6379端口,查看副本的信息,此时server2是server1的slave

在这里插入图片描述

  • 在server2查看节点的信息,server2的master是server1

在这里插入图片描述
(5)只有master节点可以写数据,slave作为备份和读数据
在这里插入图片描述
在这里插入图片描述
vim 6379.conf

在这里插入图片描述
在这里插入图片描述

(6)redis有16个数据库(0-15),可以通过select命令切换数据库

 redis-cli 
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set name westos
OK
127.0.0.1:6379[1]> get name
"westos"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> set name linux
OK
127.0.0.1:6379> get name
"linux"
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get name
"westos"
127.0.0.1:6379[1]> FLUSHALL
OK
127.0.0.1:6379[1]> get name
(nil)
127.0.0.1:6379[1]> set name linux
OK
127.0.0.1:6379[1]> get name
"linux"
127.0.0.1:6379[1]> move name 0
(integer) 1
127.0.0.1:6379[1]> get name
(nil)
127.0.0.1:6379[1]> SELECT 0
OK
127.0.0.1:6379> get name
"linux"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name linux
OK
127.0.0.1:6379> RENAME name NAME
OK
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> get NAME
"linux"
127.0.0.1:6379> RENAME  NAME name
OK
127.0.0.1:6379> get name
"linux"
127.0.0.1:6379> EXPIRE name 4
(integer) 1
127.0.0.1:6379> get name
"linux"
127.0.0.1:6379> get name
"linux"
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name linux
OK
127.0.0.1:6379> KEYS na*
1) "name"
127.0.0.1:6379> KEYS name
1) "name"
127.0.0.1:6379> EXISTS name
(integer) 1
127.0.0.1:6379> EXISTS age
(integer) 0
127.0.0.1:6379> quit

3 哨兵模式

在主从复制的基础上,能实现master节点故障的自动切换;
集群至少三个节点而且推荐节点数为奇数;

哨兵的作用

(1)监控:监控redis集群的运行状况,当被监控的某个 Redis 服务器出现问题时,
(2)通知:Sentinel 可以通过 API 向管理员或者其他应用程序发送通知
(3)故障转移:

1.投票:当任何一个Sentinel发现被监控的Master下线时,会通知其它的Sentinel投票         确定该Master是否下线
2.选举:当Sentinel确定Master下线后,会在有的Slaves中,选举一个新的节点,升级成Master节点,其它Slaves节点,转为该节点的从节点;
3.原Master重新上线:当原Master节点重新上线后,自动转为当前Master节点的从节点

哨兵模式的部署

(1)编辑server1的sentinel的配置文件

cp /root/redis-5.0.8/sentinel.conf /etc/redis/
vim  /etc/redis/ sentinel.conf
	protected-mode no
	sentinel monitor mymaster 172.25.12.1 6379 2
 scp /etc/redis/ sentinel.conf server2:/etc/redis/
 scp /etc/redis/ sentinel.conf server3:/etc/redis/

(2)启动sentinel:redis-sentinel /etc/redis/sentinel.conf

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(3)测试:将server1的redis实例shutdown

redis-cli -p 6379
SHUTDOWN
  • 哨兵监控到redis的master不可以,会自动选举新的master

在这里插入图片描述
在这里插入图片描述

  • 重启server1的redis实例
/etc/init.d/redis_6379 start

在这里插入图片描述

  • 启动之后自动修改配置文件: /etc/redis/6379.conf

在这里插入图片描述
/root/redis-5.0.8

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值