redis集群安装
redis集群安装1.下载redis2.创建节点目录并安装修改配置文件将配置文件翻入各自目录中启动redis上传gem创建集群新增集群节点查询集群状态
redis集群安装
1.下载redis
从官网中可以下下载到最新版本的redis,我这里使用的是5.0.4版本的
wget https://download.redis.io/releases/redis-5.0.4.tar.gz
2.创建节点目录并安装
创建节点目录(演示在同一台机器的不同端口)
mkdir /app/redis-cluster/redis-1-8701
mkdir /app/redis-cluster/redis-2-8702
mkdir /app/redis-cluster/redis-3-8703
mkdir /app/redis-cluster/redis-4-8704
mkdir /app/redis-cluster/redis-5-8705
mkdir /app/redis-cluster/redis-6-8705
进入到redis的下载目录
cd /user/local/redis
tar zvf redis-5.0.4.tar.gz
安装到定义目录
make install PREFIX
=/app/redis-cluster/redis-1-8701
make install PREFIX
=/app/redis-cluster/redis-2-8702
make install PREFIX
=/app/redis-cluster/redis-3-8703
make install PREFIX
=/app/redis-cluster/redis-4-8704
make install PREFIX
=/app/redis-cluster/redis-5-8705
make install PREFIX
=/app/redis-cluster/redis-6-8706
修改配置文件
port 8701-8706
cluster-enabled
yes
masterauth 集群认证密码
requirepass 登录认证密码
将配置文件翻入各自目录中
cp redis.conf /app/redis-cluster/redis-1-8701/bin
cp redis.conf /app/redis-cluster/redis-2-8702/bin
cp redis.conf /app/redis-cluster/redis-3-8703/bin
cp redis.conf /app/redis-cluster/redis-4-8704/bin
cp redis.conf /app/redis-cluster/redis-5-8705/bin
cp redis.conf /app/redis-cluster/redis-6-8706/bin
启动redis
在各自的bin目录下执行 如 /app/redis-cluster/redis-1-8701/bin
./redis-server redis.conf
上传gem
需要安装 ruby用于搭建redis集群的脚本
yum
install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel
make bzip2 autoconf automake libtool bison iconv-devel
yum
install gem
安装过程中可能出现的问题
curl -L get.rvm.io
| bash -s stable
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 194 100 194 0 0 287 0 --:--:-- --:--:-- --:--:-- 288
100 24535 100 24535 0 0 15448 0 0:00:01 0:00:01 --:--:-- 32932
Downloading https://github.com/rvm/rvm/archive/1.29.10.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.10/1.29.10.tar.gz.asc
gpg: 已创建目录‘/root/.gnupg’
gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立
gpg: 于 2020年03月26日 星期四 05时58分42秒 CST 创建的签名,使用 RSA,钥匙号 39499BDB
gpg: 无法检查签名:没有公钥
GPG signature verification failed
for '/usr/local/rvm/archives/rvm-1.29.10.tgz' -
'https://github.com/rvm/rvm/releases/download/1.29.10/1.29.10.tar.gz.asc'! Try to
install GPG v2 and
then fetch the public key:
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
or
if it fails:
command curl -sSL https://rvm.io/mpapis.asc
| gpg2 --import -
command curl -sSL https://rvm.io/pkuczynski.asc
| gpg2 --import -
In
case of further problems with validation please refer to https://rvm.io/rvm/security
执行提示的命令后再次安装
command curl -sSL https://rvm.io/mpapis.asc
| gpg2 --import -
command curl -sSL https://rvm.io/pkuczynski.asc
| gpg2 --import -
ruby需要大于2.4.0
source /etc/profile.d/rvm.sh
rvm list known
rvm
install 2.4
ruby -v
gem
install redis
创建集群
./redis-cli --cluster create 127.0.0.1:8701 127.0.0.1:8702 127.0.0.1:8703 127.0.0.1:8704 127.0.0.1:8705 127.0.0.1:8706 --cluster-replicas 1 -a 密码
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 127.0.0.1:8705 to 127.0.0.1:8701
Adding replica 127.0.0.1:8706 to 127.0.0.1:8702
Adding replica 127.0.0.1:8704 to 127.0.0.1:8703
>>> Trying to optimize slaves allocation
for anti-affinity
[WARNING
] Some slaves are
in the same host as their master
M: 3e5d226358b60a9738c3d33252f806b6174770fb 127.0.0.1:8701
slots:
[0-5460
] (5461 slots
) master
M: 1b82eb3feaef05a61384cc958b6ab3d5260c568e 127.0.0.1:8702
slots:
[5461-10922
] (5462 slots
) master
M: bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c 127.0.0.1:8703
slots:
[10923-16383
] (5461 slots
) master
S: 71666db8a984818587fc2a12434f13bd1fb2eca9 127.0.0.1:8704
replicates 1b82eb3feaef05a61384cc958b6ab3d5260c568e
S: 9fb977d91f2fcc9cd2474d38829303657b216167 127.0.0.1:8705
replicates bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c
S: db985cda50930a9336de32cd5740fb9010bb222b 127.0.0.1:8706
replicates 3e5d226358b60a9738c3d33252f806b6174770fb
Can I
set the above configuration?
(type
'yes' to accept
):
yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to
join the cluster
Waiting
for the cluster to
join
....
>>> Performing Cluster Check
(using node 127.0.0.1:8701
)
M: 3e5d226358b60a9738c3d33252f806b6174770fb 127.0.0.1:8701
slots:
[0-5460
] (5461 slots
) master
1 additional replica
(s
)
S: db985cda50930a9336de32cd5740fb9010bb222b 127.0.0.1:8706
slots:
(0 slots
) slave
replicates 3e5d226358b60a9738c3d33252f806b6174770fb
S: 71666db8a984818587fc2a12434f13bd1fb2eca9 127.0.0.1:8704
slots:
(0 slots
) slave
replicates 1b82eb3feaef05a61384cc958b6ab3d5260c568e
M: 1b82eb3feaef05a61384cc958b6ab3d5260c568e 127.0.0.1:8702
slots:
[5461-10922
] (5462 slots
) master
1 additional replica
(s
)
S: 9fb977d91f2fcc9cd2474d38829303657b216167 127.0.0.1:8705
slots:
(0 slots
) slave
replicates bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c
M: bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c 127.0.0.1:8703
slots:
[10923-16383
] (5461 slots
) master
1 additional replica
(s
)
[OK
] All nodes agree about slots configuration.
>>> Check
for open slots
...
>>> Check slots coverage
...
[OK
] All 16384 slots covered.
集群创建成功
新增集群节点
redis-cli --cluster add-node 127.0.0.1:8701 -a 密码
redis-cli --cluster add-node 127.0.0.1:8701
查询集群状态
./redis-cli --cluster check 127.0.0.1:8701 -a 密码
Warning: Using a password with
'-a' or
'-u' option on the
command line interface may not be safe.
127.0.0.1:8701
(3e5d2263
...
) -
> 0 keys
| 5461 slots
| 1 slaves.
127.0.0.1:8702
(1b82eb3f
...
) -
> 0 keys
| 5462 slots
| 1 slaves.
127.0.0.1:8703
(bd3bfdc6
...
) -
> 0 keys
| 5461 slots
| 1 slaves.
[OK
] 0 keys
in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check
(using node 127.0.0.1:8701
)
M: 3e5d226358b60a9738c3d33252f806b6174770fb 127.0.0.1:8701
slots:
[0-5460
] (5461 slots
) master
1 additional replica
(s
)
S: db985cda50930a9336de32cd5740fb9010bb222b 127.0.0.1:8706
slots:
(0 slots
) slave
replicates 3e5d226358b60a9738c3d33252f806b6174770fb
S: 71666db8a984818587fc2a12434f13bd1fb2eca9 127.0.0.1:8704
slots:
(0 slots
) slave
replicates 1b82eb3feaef05a61384cc958b6ab3d5260c568e
M: 1b82eb3feaef05a61384cc958b6ab3d5260c568e 127.0.0.1:8702
slots:
[5461-10922
] (5462 slots
) master
1 additional replica
(s
)
S: 9fb977d91f2fcc9cd2474d38829303657b216167 127.0.0.1:8705
slots:
(0 slots
) slave
replicates bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c
M: bd3bfdc6e76b0fe0a1d70fe5c0818c271cec443c 127.0.0.1:8703
slots:
[10923-16383
] (5461 slots
) master
1 additional replica
(s
)
[OK
] All nodes agree about slots configuration.
>>> Check
for open slots
...
>>> Check slots coverage
...
[OK
] All 16384 slots covered.
All 16384 slots covered 所有的插槽均有覆盖到 这里一共有6台redis,三主三从一个插槽均有2分副本