1. 准备三台服务器,分别是10.0.100.157/158/159。其中157作为master,另外两台作为slave。主服务器提供读写功能,而从服务器负责读
2. 在文件的安装目录下安装redis,我的是/opt
3. 通过以下命令下载redis安装包
cd /opt wget http://download.redis.io/releases/redis-4.0.11.tar.gz
4.解压下载下来的redis
tar -zxvf redis-4.0.11.tar.gz
5.安装gcc
yum -y install gcc automake autoconf libtool make
6.进入redis-4.0.11目录,输入命令进行安装
make
7. redis安装好之后,在/opt下新建redis目录,再将原来的redis-4.0.11下的5个文件移动到redis目录下
[ opt]$ mkdir redis [ opt]$ cd redis-4.0.11/src/ [ src]$ cp redis-server /opt/redis [ src]$ cp redis-cli /opt/redis [ src]$ cp redis-benchmark /opt/redis [ src]$ cd .. [ redis-4.0.11]$ cp redis.conf /opt/redis [ redis-4.0.11]$ cp sentinel.conf /opt/redis
8. 修改服务器的redis.conf文件
vim /opt/redis/redis.conf
#bind 127.0.0.1 #把这一行注释掉 protected-mode no # 把保护模式设置为no,如果这里是yes,那么修改为no daemonize yes #这里修改为yes,表示redis服务可以后台运行
slaveof 10.0.100.157 6379 #注意这一步只有从服务器要添加,标识从服务器隶属的主服务器
9. 关闭防火墙
systemctl stop firewalld.service
10. 创建全局快捷方式
ln -s /opt/redis-4.0.11/src/redis-server /usr/bin/redis-server #注意根据自己的安装路径来做修改
11. 分别启动redis服务,并查看redis的信息
redis-server redis.conf
redis-cli info
可以看到redis的主从复制已经成功了,接下来我们来实验一下
至此,redis主从复制已经成功实现读写分离。
接下来是redis的哨兵模式
服务器上的redis进程和哨兵进程是不冲突的,所以直接在这三台服务器上部署哨兵进程
sentinel monitor mymaster 10.0.100.157 6379 2 #这里指的是监视哪一个redis集群,2代表的是主服务器挂了那么3个哨兵中2个确定挂了就可以随机选一个当主节点
注意在主从中配置为主节点的redis 在配置sentinel.conf的时候
需要把这句话注释掉 sentinel deny-scripts-reconfig yes 暂时我也不知道为什么 希望大佬看见能解释下 感激不尽!!
13. 配置好之后,启动服务
redis-server sentinel.conf --sentinel &
14. 通过如下命令可以查看哨兵信息
redis-cli -p 26379 INFO Sentinel
我们可以看到主节点是157,然后有两个从节点,总共三个哨兵
15. 验证是否符合预期
使用redis-cli shutdown命令将157的服务挂了,哨兵投票随机选取一个服务器当做新的主服务器
接下来我们再看看能不能在159上面进行写操作
结果符合预期,哨兵部署完毕