因为公司项目需要redis高可用,并且有应急措施,所以只能去研究下redis主从+哨兵的部署,本来是想部署集群的,但是集群需要最少需要六个实例,然后就算了,本文主要记录一下这次部署过程,附上自己写的一个部署脚本(需要的朋友改一改应该可以用,讲其中的中文改成对应的ip就行了)
架构
redis: 一主一从
sentinel(哨兵):三个(因为只有两台服务器,所以都部署在从机上了,有条件可以单独弄一个机器专门部署哨兵,单注意哨兵个数一定要为基数,涉及到一个内部投票选举的机制)
压缩包内容
下载地址:https://download.csdn.net/download/sqm1995/11193551
文件名 | 描述 |
---|---|
master_serice.sh | 主机启动停止脚本 |
slave_service.sh | 从机启动停止脚本 |
redis.sh | 部署脚本 |
redis-master.conf | 主机配置 |
redis-slave.conf | 从机配置 |
redis-4.0.14.tar.gz | redis安装包 |
sentinel-701… | 哨兵 |
脚本执行步骤
上传、解压安装包
- 在/opt目录下上传redis.tar.gz安装包
cd /opt
- 上传完成后解压
tar -zxvf redis.tar.gz
部署
-
进入解压后的文件夹
cd redis
-
赋权shell脚本
chmod u+x redis.sh master_service.sh slave_service.sh
-
运行部署脚本
./redis.sh
-
会弹出如下提示
-
如果部署主机器则输入y,从机则输入n
-
等待脚本执行完成,出现================success!表示部署成功
启停操作
部署完成是自动启动的
启动
- 进入解压后的安装包目录下
.cd /opt/redis
. - 如果为主机则执行:
./master_service start
- 如果为从机则执行:
./slave_service start
停止
- 进入解压后的安装包目录下
cd /opt/redis - 如果为主机则执行:
./master_service stop
- 如果为从机则执行:
./slave_service stop
验证主从
进入/usr/local/redis目录
主机:
./redis-cli -p 7001 -c
从机:
./redis-cli -p 7002 -c
在主机中set值,如果在从机中能看到,说明主从ok
验证哨兵
讲项目连接主机,并且配上哨兵,java配置如图:
在储存数据后,kill掉主机,再储存数据,如果数据成功到从机上,说明哨兵ok,再次启动主机,会发现刚才kill掉的主机上有从机同步过来的数据