1. 安装及配置

1.1 下载、解压、编译Redis

1
2
3
$ wget http://download.redis.io/releases/redis-6.0.6.tar.gz
$ tar xzf redis-6.0.6.tar.gz
$ cd redis-6.0.6

1.2 编译、安装文件

1
2
安装目录  /usr/local/redis
make install PREFIX=/usr/local/redis

如果make出现如下错误:

alt

更新c++版本

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5
gcc -v
# 升级gcc到5.3及以上,如下:
升级到gcc 9.3:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 9.3的话:

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
这样退出shell重新打开就是新版的gcc了
以下其他版本同理,修改devtoolset版本号即可。

1.3 进入到/usr/local/redis目录

1
mkdir cluster

1.4 复制6个redis.conf到cluster目录,并修改conf文件配置(修改配置如下)

1.5 config配置

参数 注释
port 6379 端口6379,6380,6381
bind 本机ip 默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes redis后台运行
pidfile /var/run/redis_6379.pid pidfile文件对应6379,6380,6381
cluster-enabled yes 开启集群 把注释#去掉
cluster-config-file nodes_6379.conf 集群的配置 配置文件首次启动自动生成6379,6380,6381
cluster-node-timeout 15000 请求超时 默认15秒,可自行设置
appendonly yes aof日志开启 有需要就开启,它会每次写操作都记录一条日志
maxmemory 7516192768 限制内存在7G
masterauth 123456 如果master服务器设置有密码则需要配置masterauth参数(集群服务各个节点同步数据用)。
requirepass 123456 访问reids服务密码

1.6 创建服务启动脚本
创建redis-start.sh,并写入如下脚本

1
2
3
4
5
6
./node1/redis-server ./node1/redis.conf &
./node2/redis-server ./node2/redis.conf &
./node3/redis-server ./node3/redis.conf &
./node4/redis-server ./node4/redis.conf &
./node5/redis-server ./node5/redis.conf &
./node6/redis-server ./node6/redis.conf &

赋予可执行权限并启动

1
2
chmod -x ./redis-start.sh
./redis-start.sh

2.创建集群

1
./redis-cli --cluster create  127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 -a 123456 --cluster-replicas 1 

注:-a后面表示连接密码

1
2
3
4
5
6
7
8
9
10
(1)Performing hash slots allocation on 6 nodes... # 代表一共有6个节点

(2)Using 3 masters: # 有三个主节点 分别是端口 6379、6380、6381

(3)Adding replica 127.0.0.1:6383 to 127.0.0.1:6381 # 端口7005的节点是端口7001节点的从节点,以此类推

(4)M: 4f09476bf32fb704308dc4e867412cc4b9fe8b96 127.0.0.1:6379 # 前面内一串是ID唯一标识

(5)slots:0-5460 (5461 slots) master # 代表当前节点的哈希槽为0-5460,主节点才有哈希槽,redis集群中内置了16384(0-16383)个哈希槽。
(6)yes #开始搭建

redis-cli常用命令

连接节点

1
redis-cli -c -h 127.0.0.1 -p 6379 -a 123456

查看集群已知所有节点

1
redis-cli -c -h 127.0.0.1 -p 6379 -a 123456 cluster nodes

移除节点,

1
127.0.0.1:6379> cluster forget 23b34ded9a2b769fe61001abac8fb250b37e482a

保存redis集群的配置文件

1
127.0.0.1:6379>  cluster saveconfig  

停止服务

1
redis-cli -h 127.0.0.1 -p 6379(端口) shutdown