Redis集群环境搭建

一. 下载redis(此处我下载的是5.0.3版本)

下载地址:http://download.redis.io/releases/

 Linux命令下载:wget http://download.redis.io/releases/redis‐5.0.3.tar.gz 

二.  先搭建一个单点redis:Linux环境安装redis

三. 集群搭建

redis集群需要至少3个节点,这里搭建3个master节点,每个master下面再搭建两个slave节点,总共9个节点,这里用一个虚拟机,部署9个redis实例,每个集群节点是一主两从。

搭建步骤:

1.搭建好一个单点后,我的目录结构如下:

Redis集群环境搭建_第1张图片

2.创建九个目录,代表集群中的九个节点

mkdir 8081
        ...
       mkdir 8089

Redis集群环境搭建_第2张图片

3. 最终搭建效果如下:

三个cluster 每个cluster一主两从,架构如下图:

Redis集群环境搭建_第3张图片

4. 将刚刚安装的redis-5.0.3目录下的redis.conf文件复制到8081目录下

cp redis-5.0.3/redis.conf 8081/

Redis集群环境搭建_第4张图片

5. 修改8081目录下的redis.conf,修改如下内容

1》daemonize yes 

2》port 8081

3》dir /usr/local/redis/redis-cluster/8081/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据) 

4》cluster-enabled yes

5》cluster-config-file nodes-8081.conf

6》cluster-node-timeout 5000

7》# bind 127.0.0.1(去掉bind绑定访问ip信息) 

8》protected‐mode no (关闭保护模式) 

9》appendonly yes 

 如果要设置密码需要增加如下配置:

10》requirepass root (设置redis访问密码)

11》masterauth root (设置集群节点间访问密码,跟上面一致)

 

6.把8081修改后的配置文件redis.conf,分别copy到8082~8089目录下,修改第2》、3》、5》项里的端口号为目录对应的端口号,修改dir为你对应的目录。可以用批量替换:

:%s/源字符串/目的字符串/

Redis集群环境搭建_第5张图片

修改8082为例:

vim 8082/redis.conf

:%s/8081/8082/g 

Redis集群环境搭建_第6张图片

7.分别启动9个redis

启动的时候用安装好的那个目录下的redis-server 指定你的各个节点的配置文件

例如:

redis-5.0.3/src/redis-server 8081/redis.conf

...

redis-5.0.3/src/redis-server 8089/redis.conf

Redis集群环境搭建_第7张图片

 

ps -ef|grep redis 查看是否启动成功

Redis集群环境搭建_第8张图片

8.用redis‐cli创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis‐trib.rb实现) 

# 下面命令里的1代表为每个创建的主服务器节点创建一个从服务器节点

# 执行这条命令需要确认三台机器之间的redis实例要能相互访问,可以先简单把所有机器防火墙关掉,如果不关闭防火墙 则需要打开redis服务端口和集群节点gossip通信端口

# 关闭防火墙

# systemctl stop firewalld # 临时关闭防火墙

# systemctl disable firewalld # 禁止开机启动

例如:

redis-5.0.3/src/redis-cli -a root --cluster create --cluster-replicas 2 192.168.xxx.xxx:8081 192.168.xxx.xxx:8082 192.168.xxx.xxx:8083 192.168.xxx.xxx:8084 192.168.xxx.xxx:8085 192.168.xxx.xxx:8086 192.168.xxx.xxx:8087 192.168.xxx.xxx:8088 192.168.xxx.xxx:8089

在单个虚拟机情况下,创建集群的时候,master和salve是随机分配的,当运行上述命令后,会有下面的提示

Redis集群环境搭建_第9张图片

我选择了no ,因为随机构建的集群架构不是我想要的,如图所示,此时8081是master节点 8084和8088是他对应的slave,比如:我想要的结构如下:

master:8081 对应slave是 8088、8089

master:8082 对应slave是 8086、8087 

master:8083 对应slave是 8084、8085 

所以此处我选择no, 然后便会退出,再次运行一次 

redis-5.0.3/src/redis-cli -a root --cluster create --cluster-replicas 2 192.168.xxx.xxx:8081 192.168.xxx.xxx:8082 192.168.xxx.xxx:8083 192.168.xxx.xxx:8084 192.168.xxx.xxx:8085 192.168.xxx.xxx:8086 192.168.xxx.xxx:8087 192.168.xxx.xxx:8088 192.168.xxx.xxx:8089

发现,节点的构建关系变化了,如果发现还不是你想要的构建结构,一直选择no, 直到构建出你想要的结构为止,重复操作几次,最终得到了我想要的构建结构:

Redis集群环境搭建_第10张图片

输入yes,集群节点结构构建成功

9.进入某一个节点客户端 

redis-5.0.3/src/redis-cli -a root -c -h IP -p 8081 (‐a访问服务端密码,‐c表示集群模式,指定ip地址和端口号) 

cluster info(查看集群信息)、cluster nodes(查看节点列表) 

Redis集群环境搭建_第11张图片

可以看到对应关系如下

master:8081 对应slave是 8088、8089

master:8082 对应slave是 8086、8087 

master:8083 对应slave是 8084、8085 

 

10.关闭集群则需要逐个进行关闭,使用命令: 

redis-5.0.3/src/redis-cli -a root -c -h IP -p 8081 shutdown
 

11.验证集群是否生效

8081客户端登录,设置值

Redis集群环境搭建_第12张图片

8082客户端登录,取8081设置的值

8083客户端登录,取8081设置的值

 

至此 集群搭建成功!!!

原创不易,转载请注明出处:https://blog.csdn.net/Kermit_father/article/details/105913060

 

                                                                                                                                 五一最后一天假

                                                                                                                                              ——2020 五一放假 于蓝鲸!!

你可能感兴趣的:(Redis,redis)