redis集群模式搭建
我们在centos上的一台机器上搭建redis 集群模式
- 第一步,首先安装redis, 这里安装版本5.0.14
#下载源码到soft目录
[root@VM-16-12-centos root]# cd soft
[root@VM-16-12-centos soft]# wget https://download.redis.io/releases/redis-5.0.14.tar.gz
[root@VM-16-12-centos soft]# ls -l red*
-rw-r--r-- 1 root root 2000179 Oct 4 19:08 redis-5.0.14.tar.gz
#解压
[root@VM-16-12-centos soft]# tar -xvf redis-5.0.14.tar.gz
#进行编译
[root@VM-16-12-centos soft]# cd redis-5.0.14/
[root@VM-16-12-centos redis-5.0.14]# make
#安装
[root@VM-16-12-centos redis-5.0.14]# make install
#安装完成后,默认会安装在下面目录/usr/local/bin/,
[root@VM-16-12-centos bin]# ls -l /usr/local/bin/redis*
-rwxr-xr-x 1 root root 4367048 Nov 20 21:21 /usr/local/bin/redis-benchmark
-rwxr-xr-x 1 root root 8153048 Nov 20 21:21 /usr/local/bin/redis-check-aof
-rwxr-xr-x 1 root root 8153048 Nov 20 21:21 /usr/local/bin/redis-check-rdb
-rwxr-xr-x 1 root root 4808280 Nov 20 21:21 /usr/local/bin/redis-cli
lrwxrwxrwx 1 root root 12 Nov 20 21:21 /usr/local/bin/redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 8153048 Nov 20 21:21 /usr/local/bin/redis-server
#但是配置文件需要我们自己拷贝到一个目录,这里我们先拷贝 /usr/local/etc/redis下
[root@VM-16-12-centos ~]# cd /usr/local/etc
[root@VM-16-12-centos etc]# mkdir redis
[root@VM-16-12-centos etc]# cd redis
[root@VM-16-12-centos redis]# cp /root/soft/redis-5.0.14/redis.conf ./
#至此安装完成,我们启动下redis-server,启动日志如下,默认当前为前台启动,CRT+C后就自动退出
[root@VM-16-12-centos ~]# redis-server /usr/local/etc/redis/redis.conf
下面说明集群模式搭建流程,搭建的集群架构如下,这里只画了4个节点,其实有6个节点
- 集群模式会启动多个redis-server实例,要求mater只是三个节点,每个master需要一个备份节点,因此至少需要6个节点。 因此首先创建6个目录来存放每个节点的数据和配置文件
#进入到redis配置文件存放目录
[root@VM-16-12-centos ~]# cd /usr/local/etc/redis
#创建目录,node后面的数字表示服务端端口号
[root@VM-16-12-centos redis]# mkdir node638{0,1,2,3,4,5}
#拷贝redis.conf 到node6380目录
[root@VM-16-12-centos redis]# cp redis.conf node6380
[root@VM-16-12-centos redis]# cd node6380
#修改配置文件的内容
[root@VM-16-12-centos node6380]# vim redis.conf
#需要修改如下配置,改完后如下:
#----------------------------------------------
#后台模式运行
daemonize yes
#服务端端口
port 6380
#保护模式关闭
protected-mode no
#注释bind 127.0.0.1,开启绑定所有IP,否则外部IP无法连接
#bind 127.0.0.1
#数据存储目录修改
dir /usr/local/etc/redis/node6380
#卡其集群模式
cluster-enabled yes
#集群配置文件,这个配置文件是由redis自动维护的,不是我们手动维护的
cluster-config-file nodes-6380.conf
#开启AOF持久化模式
appendonly yes
#设置密码验证,主从同步需要开启。密码需要移植
requirepass 111111
masterauth 111111
- 经过1步骤操作后,node6380 就配置好了,接下来配置其它节点配置文件
#复制6380下redis.conf到其它几个目录
[root@VM-16-12-centos node6380]# cp redis.conf ../node6380
[root@VM-16-12-centos node6380]# cp redis.conf ../node6381
[root@VM-16-12-centos node6380]# cp redis.conf ../node6382
[root@VM-16-12-centos node6380]# cp redis.conf ../node6383
[root@VM-16-12-centos node6380]# cp redis.conf ../node6384
[root@VM-16-12-centos node6380]# cp redis.conf ../node6385
#接下来分别进入到其它几个目录,分别修改如下几个配置,以node6381修改为例,其它类似修改即可。
#服务端端口
port 6381
#数据存储目录修改
dir /usr/local/etc/redis/node6381
#集群配置文件,这个配置文件是由redis自动维护的,不是我们手动维护的
cluster-config-file nodes-6381.conf
- 配置文件已经全部配置好,然后分别启动6个实例。[root@VM-16-12-centos ~]
redis-server /usr/local/etc/redis/node6380/redis.conf
[root@VM-16-12-centos ~]redis-server /usr/local/etc/redis/node6381/redis.conf
[root@VM-16-12-centos ~]redis-server /usr/local/etc/redis/node6382/redis.conf
[root@VM-16-12-centos ~]redis-server /usr/local/etc/redis/node6383/redis.conf
[root@VM-16-12-centos ~]redis-server /usr/local/etc/redis/node6384/redis.conf
[root@VM-16-12-centos ~]redis-server /usr/local/etc/redis/node6385/redis.conf
[root@VM-16-12-centos redis]# ps -ef|grep redis
root 10859 1 0 13:23 ? 00:00:01 redis-server 127.0.0.1:6380 [cluster]
root 10864 1 0 13:23 ? 00:00:01 redis-server 127.0.0.1:6381 [cluster]
root 10869 1 0 13:23 ? 00:00:01 redis-server 127.0.0.1:6382 [cluster]
root 10875 1 0 13:23 ? 00:00:01 redis-server 127.0.0.1:6383 [cluster]
root 14828 1 0 13:44 ? 00:00:00 redis-server 127.0.0.1:6384 [cluster]
root 14869 1 0 13:44 ? 00:00:00 redis-server 127.0.0.1:6385 [cluster]
- 通过命令创建集群,4版本redis需要通过 redis-trib.rb 脚本创建,5以后就不要了。直接使用redis-cli即可以了
# cluster-replicas副本数为1表示每个master一个副本,设置后 redis会自动计算技术出mater节点个数
redis-cli -a 111111 --cluster create localhost:6380 localhost:6381 localhost:6382 localhost:6383 localhost:6384 localhost:6385 --cluster-replicas 1
#显示以下日志表示创建成功
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica localhost:6384 to localhost:6380
Adding replica localhost:6385 to localhost:6381
Adding replica localhost:6383 to localhost:6382
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: b795b8405fe8766291c5cda7bd0d2dde75fa41d4 localhost:6380
slots:[0-5460] (5461 slots) master
M: 434cc24b52276b7d5cbd8b0e50679194a86fbe5b localhost:6381
slots:[5461-10922] (5462 slots) master
M: d01a9a365a0d940c8659a0494756a6ae8fcb1f32 localhost:6382
slots:[10923-16383] (5461 slots) master
S: 692146649876582d075a7721c7a930f490cdc06f localhost:6383
replicates b795b8405fe8766291c5cda7bd0d2dde75fa41d4
S: 692146649876582d075a7721c7a930f490cdc06f localhost:6384
replicates 434cc24b52276b7d5cbd8b0e50679194a86fbe5b
S: 692146649876582d075a7721c7a930f490cdc06f localhost:6385
replicates d01a9a365a0d940c8659a0494756a6ae8fcb1f32
Can I set the above configuration? (type 'yes' to accept)
#此处需要输入yes
- 测试下是否搭建好,连主节点 上面日志 M 表示主节点
redis-cli -a 111111 -p 6380
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/111669.html