- 准备工作:
- 将redis上传至/home/tmp目录下,使用tar -zxvf edis-5.0.2.tar.gz,解压完毕后cd redis-5.0.2 ,执行make,三台机器都按照这个步骤执行
- 准备配置文件,在/home/tmp 目录下新建redis-config目录,在redis-config目录下新建6800与6801两个文件夹,在6800与6801文件夹下使用vim redis-6800.conf,配置文件内容如下
#开启redis后台启动
daemonize yes
#redis端口
port 6800
#数据存放位置
dir /home/tmp/redis-config/6800/
#启用集群模式
cluster-enabled yes
#集群节点超时时间毫秒
cluster-node-timeout 5000
#关闭保护模式
protected-mode no
#redis访问密码
requirepass test1234
#集群间访问密码同上
masterauth test1234
#开启aof
appendonly yes
#aof配置文件
appendfilename "appendonly.aof"
- 6801也要按照这个格式配置,注意:需要修改的位置有端口号,数据存放位置
- 编写一个启动脚本,vim startRedis.sh,内容如下,使用时直接./startRedis.sh即可,记得要赋予可执行权限chmod +x startRedis.sh
#!/bin/bash
echo "------------------1.redis启动脚本开始执行"
echo "------------------2.查看redis进程是否存在"
PROC_NAME=redis-5.0.2
PROCESS=`ps -ef|grep -w $PROC_NAME |grep -v grep| wc -l`
echo $PROCESS
if [ 0 == $PROCESS ];then
echo "------------------3.redis进程不存在"
echo "------------------4.开始启动6800"
/home/tmp/redis-5.0.2/src/redis-server /home/tmp/redis-config/6800/redis-6800.conf
echo "------------------5.开始启动6801"
/home/tmp/redis-5.0.2/src/redis-server /home/tmp/redis-config/6801/redis-6801.conf
else
echo "------------------3.redis进程存在,请在执行关闭脚本------------------"
fi
- 停止脚本,vim stopRedis.sh,与上方一样赋予执行权限
#!/bin/bash
echo "------------------1.redis停止脚本开始执行"
echo "------------------2.查看redis进程是否存在"
PROCESS=`ps -ef|grep redis-5.0.2 |grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
echo "------------------3.开始kill进程[ $i ]"
kill -9 $i
done
- 按照上述步骤将三台服务器上的六台redis服务全部启动后,开始配置集群,redis 5.0已经需要使用ruby脚本启动,5.0以后可以使用redis本身的 cluster create创建,具体命令如下,需要修改的地方有 -a后的密码,为你redis集群配置的密码,ip地址为你三台服务器的ip地址,如果使用云服务器记得要打开redis集群之间通信的端口,端口为redis服务+10000,请注意!!! 如果你是测试在本地虚拟机搭建,下面的127.0.0.1更换为你服务器的IP地址,不然你的应用会链接不上
/home/tmp/redis-5.0.2/src/redis-cli -a test1234--cluster create 127.0.0.1:6800 127.0.0.1:6801 127.0.0.2:6800 127.0.0.2:6801 127.0.0.3:6800 127.0.0.3:6801 --cluster-replicas 1
- 创建成功后开始测试,在tmp目录下执行./redis-5.0.2/src/redis-cli -c -a test1234 -h 127.0.0.1 -p 6800 进入链接状态 执行cluster info 查看集群信息,执行cluster nodes查看集群内节点信息
- 在任意一台机器set name ''1234",在另外一台get name 查看是否可以正常获取值
- 宕机测试,停掉任意一台服务器,查看获取数据是否正常