文章目录
- [第1关:Redis 环境搭建](#第1关:Redis 环境搭建)
第1关:Redis 环境搭建
编程要求
根据上述相关知识,在右侧命令行中完成 Redis 集群的部署与安装。
安装完成后,使用 echo "cluster nodes"|redis-cli -p 7001 -c >/root/test.txt 将结果保存。
测试说明
脚本会在 master 、 slave1 、slave2、slave3 服务器上进行输入 cluster nodes 查看状态,若进程与预期输出一致则通过是否安装成功并使环境生效,或者 Redis 进程是否全部启动成功。
评测时长约 20 秒钟,请耐心等待。
该文章中有部分的过程省略了,比如有些需要输入yes,或者密码123123的步骤有些地方未写。
代码如下:
c
cd /opt
c
wrapdocker
c
ulimit -f unlimited
c
docker load -i ubuntu16-ssh.tar
c
cd /root
c
docker-compose up -d
c
scp /data/bigfiles/redis-5,0,2,tar.gz root@172.18.0.2:/opt
c
ssh 172.18.0.2
该命令后输入yes之后输入123123
c
ssh-keygen -t rsa
#执行命令之后,连着按三个回车键即可生成秘钥。

在第二个命令行输入以下代码:
c
# 进入 salve1 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.3
c
ssh-keygen -t rsa

在第三个命令行输入以下代码:
c
# 进入 salve2 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.4
c
ssh-keygen -t rsa

在第四个个命令行输入以下代码:
c
# 进入 salve3 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.5
c
ssh-keygen -t rsa

在 master 复制 master、slave1、slave2、slave3 的公钥。
也就是第一个命令行:
代码入下:
c
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
要是输入上行代码显示没有文件就再次输入一遍下面的代码
cssh 172.18.0.2 ssh-keygen -t rsa
c
ssh slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
c
ssh slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
c
ssh slave3 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

在第二个命令行:
c
ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

在第三个命令行:
c
ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

在第四个命令行:
c
ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

在第一个命令行输入以下代码:
c
scp -r /opt/redis-5,0,2,tar.gz root@slave1:/opt/
scp -r /opt/redis-5,0,2,tar.gz root@slave2:/opt/
scp -r /opt/redis-5,0,2,tar.gz root@slave3:/opt/
在第一个到第四个命令行输入以下代码:
c
tar -zxvf /opt/redis-5,0,2,tar.gz -C /usr/local/
cd /usr/local
mv redis-5.0.2/ redis
对每个节点进行安装 Redis 并设置快捷操作
c
cd /usr/local/redis
make
make install

Redis 集群搭建
第一个命令行输入以下代码:
c
cd /usr/local/redis/
mkdir redis-cluster
c
cd redis-cluster
cp ../redis.conf ./
c
vim redis7001.conf
这是文件内容:
c
# 文件内容为:
include /usr/local/redis/redis-cluster
port 7001
# redis 的进程文件
pidfile /var/run/redis7001.pid
# rdb 文件名
dbfilename redis7001.rdb
# aof 文件名
appendfilename "appendonly7001.aof"
# 集群
cluster-enabled yes
# 生成的 node 文件
cluster-config-file nodes7001.conf
# 守护进程
daemonize yes
# aof、rbd文件存储目录
dir /usr/local/redis/data/
bind 0.0.0.0
c
cp /usr/local/redis/redis-cluster/redis7001.conf /usr/local/redis/redis-cluster/redis7002.conf

c
vim /usr/local/redis/redis-cluster/redis7002.conf
按esc之后输入英文冒号:
输入以下代码:
c
%s/7001/7002/g

c
scp -r /usr/local/redis/redis-cluster/ root@slave1:/usr/local/redis/
c
scp -r /usr/local/redis/redis-cluster/ root@slave2:/usr/local/redis/
c
scp -r /usr/local/redis/redis-cluster/ root@slave3:/usr/local/redis/

创建集群并启动
第一个命令行:
c
ssh 172.18.0.2
c
mkdir /usr/local/redis/data/
c
redis-server /usr/local/redis/redis-cluster/redis7001.conf
redis-server /usr/local/redis/redis-cluster/redis7002.conf
第二个命令行:
c
ssh 172.18.0.3
c
mkdir /usr/local/redis/data/
c
redis-server /usr/local/redis/redis-cluster/redis7001.conf
redis-server /usr/local/redis/redis-cluster/redis7002.conf
第三个命令行:
c
ssh 172.18.0.4
c
mkdir /usr/local/redis/data/
c
redis-server /usr/local/redis/redis-cluster/redis7001.conf
redis-server /usr/local/redis/redis-cluster/redis7002.conf
第四个命令行:
c
ssh 172.18.0.5
c
mkdir /usr/local/redis/data/
c
redis-server /usr/local/redis/redis-cluster/redis7001.conf
redis-server /usr/local/redis/redis-cluster/redis7002.conf
第一个命令行:
c
redis-cli --cluster create 172.18.0.2:7001 172.18.0.2:7002 172.18.0.3:7001 172.18.0.3:7002 172.18.0.4:7001 172.18.0.4:7002 172.18.0.5:7001 172.18.0.5:7002 --cluster-replicas 1
输入yes 并回车。

出现以下就为成功:
c
redis-cli -p 7001 -c
c
cluster nodes
c
exit
c
echo "cluster nodes"|redis-cli -p 7001 -c >/root/test.txt

由于第一关较长我将第二关代码放到下篇文章中了,第二关代码文章。