linux环境下Redis集群搭建:一主二从三哨兵

一、单机安装

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为主节点开始服务

一主二从三个服务只要不同时全挂掉,服务就不会停掉

 

        

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要在Linux上安装Redis集群,您可以按照以下步骤进行操作: 1. 下载Redis软件包: 在Redis官方网站(https://redis.io/download)上下载最新版本的Redis软件包,并将其解压到您希望安装的目录。 2. 编译和安装Redis: 打开一个终端窗口,切换到Redis源代码所在的目录,并执行以下命令: ``` $ make $ make install ``` 3. 创建Redis配置文件: 在任意位置创建一个用于保存Redis配置的文件夹,例如 `/etc/redis`,并在该文件夹下创建多个配置文件,用于不同的Redis实例。每个配置文件对应一个Redis节点。您可以使用以下示例配置文件作为参考: ``` # redis-7000.conf port 7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 # redis-7001.conf port 7001 cluster-enabled yes cluster-config-file nodes-7001.conf cluster-node-timeout 5000 # 其他实例的配置文件... ``` 4. 启动Redis节点: 打开多个终端窗口,分别切换到不同的节点配置文件所在的目录,并执行以下命令: ``` $ redis-server redis-7000.conf $ redis-server redis-7001.conf ``` 5. 创建Redis集群: 打开另一个终端窗口,并执行以下命令: ``` $ redis-cli --cluster create <node1>:<port1> <node2>:<port2> <node3>:<port3> ... ``` 其中,`<nodeX>`和`<portX>`是Redis节点的IP地址和端口号。例如,如果您在本地机上运行了3个节点,可以这样执行命令: ``` $ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 ``` 6. 验证Redis集群的状态: 执行以下命令来验证Redis集群的状态: ``` $ redis-cli -c -p <port> $ cluster info ``` 现在您已经成功安装了Redis集群。您可以通过访问不同的节点来使用集群。请注意,Redis集群需要至少3个节点才能正常工作,并且每个节点都应该有多个从节点以提供高可用性和故障转移。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值