一. 下载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.搭建好一个单点后,我的目录结构如下:
2.创建九个目录,代表集群中的九个节点
mkdir 8081
...
mkdir 8089
3. 最终搭建效果如下:
三个cluster 每个cluster一主两从,架构如下图:
4. 将刚刚安装的redis-5.0.3目录下的redis.conf文件复制到8081目录下
cp redis-5.0.3/redis.conf 8081/
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/源字符串/目的字符串/
修改8082为例:
vim 8082/redis.conf
:%s/8081/8082/g
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
ps -ef|grep redis 查看是否启动成功
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是随机分配的,当运行上述命令后,会有下面的提示
我选择了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, 直到构建出你想要的结构为止,重复操作几次,最终得到了我想要的构建结构:
输入yes,集群节点结构构建成功
9.进入某一个节点客户端
redis-5.0.3/src/redis-cli -a root -c -h IP -p 8081 (‐a访问服务端密码,‐c表示集群模式,指定ip地址和端口号)
cluster info(查看集群信息)、cluster nodes(查看节点列表)
可以看到对应关系如下
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客户端登录,设置值
8082客户端登录,取8081设置的值
8083客户端登录,取8081设置的值
至此 集群搭建成功!!!
原创不易,转载请注明出处:https://blog.csdn.net/Kermit_father/article/details/105913060
五一最后一天假
——2020 五一放假 于蓝鲸!!