操作步骤

记录在两台虚拟机(版本:CentOS7)上搭建Redis集群(Redis版本:redis-5.0.4),过程如下:

1、下载安装

首先在一台虚拟机A(IP:192.168.1.103)上新建目录redis,接着进入该目录下,下载redis-5.0.4,然后解压,进入解压目录下,编译并安装redis,虚拟机B(IP:192.168.1.104)上同理

mkdir redis
cd redis/
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar -zxvf redis-5.0.4.tar.gz
cd redis-5.0.4/
make && make install

2、配置节点

在虚拟机A的redis目录下创建redis_cluster目录,接着在redis_cluster目录下创建7000、7001、7002三个节点目录,并且复制redis-5.0.4目录下的配置文件redis.conf到7000、7001、7002三个节点目录下

mkdir redis_cluster
cd redis_cluster/
mkdir 7000 7001 7002
cp ../redis-5.0.4/redis.conf 7000
cp ../redis-5.0.4/redis.conf 7001
cp ../redis-5.0.4/redis.conf 7002

然后分别修改三个节点目录下的redis.conf配置文件,如修改7000目录下redis.conf如下,其他两个同理:

bind 192.168.1.103 // 绑定本机IP
port 7000 // 指定端口
daemonize yes // 后台运行
pidfile /root/data/redis/redis_cluster/7000/redis_7000.pid // pid文件
cluster-enabled yes // 开启集群
cluster-config-file nodes_7000.conf // 集群配置文件,集群启动后生成
appendonly yes // 开启日志
同样在虚拟机B上的redis目录下创建7003、7004、7005三个节点目录,复制并且修改redis.conf配置文件(也可以scp整个redis_cluster目录到虚拟机B的redis目录下,再修改目录名以及配置文件)。

3、启动

在虚拟机A上的redis_cluster下新建且编写start-all.sh启动脚本,如下:

../redis-5.0.4/src/redis-server 7000/redis.conf
../redis-5.0.4/src/redis-server 7001/redis.conf
../redis-5.0.4/src/redis-server 7002/redis.conf
echo 'start'

新建且编写stop-all.sh停止脚本,如下:

#!/bin/bash
PORT=7000
ENDPORT=7003
while [ $((PORT < ENDPORT)) != "0" ]; do
    echo "Stopping Redis $PORT"
    ../redis-5.0.4/src/redis-cli -h 192.168.1.103 -p $PORT shutdown
    PORT=$((PORT+1))
done
echo "done"
exit 0

把脚本复制到虚拟机B上,并且要用vim修改其中的目录、端口以及IP,如下:

scp -r *.sh 192.168.1.104:/root/data/redis/redis_cluster

为脚本添加可执行权限,并且启动,如下:

chmod +x *.sh
./start-all.sh

4、创建集群命令,一共6个节点,三主三从

../redis-5.0.4/src/redis-cli --cluster create 192.168.1.103:7000 192.168.1.103:7001 192.168.1.103:7002 192.168.1.104:7003 192.168.1.104:7004 192.168.1.104:7005 --cluster-replicas 1

最后验证集群,虚拟机A上用redis-cli连接192.168.1.104,7004端口,连接上后设置key:test,value:done,如下:

redis-cli -c -h 192.168.1.104 -p 7004
192.168.1.104:7004> set test done
-> Redirected to slot [6918] located at 192.168.1.104:7003
OK

接着虚拟机B上用redis-cli连接192.168.1.103,7001端口,连接上后获取test的值,输出done,证明集群成功,如下:

[root@localhost src]# redis-cli -c -h 192.168.1.103 -p 7001
192.168.1.103:7001> get test
-> Redirected to slot [6918] located at 192.168.1.104:7003
"done"
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐