一、单机安装
1.登录服务器输入命令:wget https://download.redis.io/releases/redis-5.0.14.tar.gz,给服务器下载安装包
下载很快
2.解压安装包:tar -xvf redis-5.0.14.tar.gz
(这里执行了一个cd opt 切换到了opt下然后执行mv /redis-5.0.14.tar.gz .,将刚才下载的redis放在opt下,这里有点费劲了,应该直接下载到opt下的)
执行解压命令:
3.进入文件夹根目录编译:cd redis-5.0.14
执行make命令
等待编译完成
4.创建一个bin目录存放几个原本在src中的常用可执行脚本
执行mkdir bin
进入src再执行:
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-sentinel redis-server ../bin/
5.执行: ./redis-server,将redis跑起来
6.测试一下
xshell再开一个会话进入这个bin目录执行:./redis-cli
没问题,到这里本地安装基本完成。
然后对外开放端口,方便外部连接测试(实际生产环境一般不对外开放)
7.修改默认端口号和密码
进入根目录找到默认配置文件redis.conf进行修改
8.修改端口:
英文半角状态下输出/port回车(类似于ctrl+f来寻找关键字),键盘输入n寻找下一个,N寻找上一个,找到后修改成自己想要的 (找到后输入a,就可以在光标所在位置的下一个字符处进行输入了),修改完成后按Esc推出编辑模式
9.关闭保护模式,将默认的yes修改为no
10.更改密码,自己添加一行密码
11.修改绑定
将默认的127.0....修改成0.0.0.0
完事保存并推出就好了
12.重新启动服务(用修改的配置文件启动)
命令: ./redis-server ../redis.conf
这时可以看到启动的服务port已经改成了我们的
13.新窗口测试
连接失败 因为端口被我们修改了,可以用命令./redis-cli -p 8973连接
然后set test 1216发现不行
因为我们密码也改了,可以输入: auth +密码就OK了
14.我们第二大步目的是对外开放,所以要在外部测试一下
我这里下载了一个windows的redis可视化管理工具redis desktop manager。
连接会发现无法连接Redis服务器
可能是服务器防火墙设置的原因,输入命令 systemctl status firewalld
发现防火墙并没有起作用。
这时候再考虑安全组,打开你的云服务器网站,设置一下安全组开放端口(我用的是腾讯云轻量级服务器)
设置完回过头来再用redis可视化工具连接,发现连接成功了
没问题,我们在这里添加一个新键,test1 111
在服务器上查看是否有这个键
没问题,到这里单机安装算是完成
二、一主二从三哨兵
1.opt下新建一个哨兵集群目录,然后将redis目录复制到这个新建的目录下,并重命名一下方便管理
2.再在当前目录下复制两个redis目录,并重命名
3.开始分别修改每个目录下的配置文件redis.conf
3.1>以8974为例,vi进入编辑redis.conf,先更改端口为8974(与上面相同不截图了)
3.2>设置主节点密码
4.更改哨兵节点的配置文件
4.1>修改端口,我这里改为了26374
4.2>哨兵监控主节点
只关注最后三个参数,分别是主机IP和主节点端口号和投票数(主节点8974挂掉了,会投票从8975和8976中选,票数大于等于2晋升为主节点继续服务)
4.3>哨兵也要和主节点交互,这里也要设置密码
5.修改8975的配置文件和哨兵配置文件与上面类似
5.1>端口号改为8975
5.2>设置主从节点(主节点是8974,主节点8974的配置文件不需要设置这一项,从节点需要)格式: replicaof 主机IP 主节点端口号
5.3>设置密码
5.4>修改哨兵配置文件vi sentinel.conf
端口修改为26375
5.5>设置主节点
5.6设置密码
完事
6.设置8976的配置文件,这里不截图了,照着8975的设置模仿着来就可以了
三、测试一下
1.xshell开启6个会话窗口分别表示三个服务节点三个哨兵
前三个窗口分别启动:
后三个哨兵窗口启动:
要都可以正常启动才行!
2.启动成功后可以用Redis Desktop Manager工具测试一下,分别连接8974,8975,8976这三个端口的redis服务,(注意服务器防火墙或者安全组的设置里面要添加上这几个端口)
当用工具给三个节点服务添加数据的时候会发现只能给主节点服务8974添加数据,而从节点服务不能添加数据。但是从节点实可以查的,这样就是对的
3.测试将主节点挂掉
关掉xshell里8974的redis服务
看从节点的服务会有日志输出显示无法连接主节点
稍等会发现有日志输出
哨兵中也会有相应的日志输出
表示现在主节点是8976了投票成功、即使8974挂掉了但是服务还是正常的
这时候用redis可视化管理工具发现8974无法连接(因为我们停了它的服务),8976可以添加数据(因为8976是新的主节点),8975依然不能添加(因为8975是从节点)
4.重新启动8974的服务发现8974也以8976为主节点开始服务
一主二从三个服务只要不同时全挂掉,服务就不会停掉