安装
创建/usr/local/redis-cluster
目录并进入。
- 下载github源码redis
bash
curl -O http://download.redis.io/releases/redis-6.2.13.tar.gz
- 解压文件
bash
tar xzf redis-6.2.13.tar.gz
- 进入解压后的redis目录
bash
cd redis-6.2.13
- 安装了make的可以跳过
bash
sudo apt install build-essential
- 编译redis
bash
make
- 安装(配置环境变量)
bash
sudo make install
redis配置文件
- 在
/usr/local/redis-cluster
文件夹下再创建7000
7001
7002
7003
7004
7005
6个文件夹
bash
mkdir 7000 7001 7002 7003 7004 7005
cd 7000
创建redis.conf文件
bash
# 端口号
port 7000
# 后台启动
daemonize yes
# 开启集群
cluster-enabled yes
#集群节点配置文件
cluster-config-file nodes-7000.conf
# 集群连接超时时间
cluster-node-timeout 5000
# 进程pid的文件位置
pidfile /var/run/redis-7000.pid
# 开启aof
appendonly yes
# aof文件路径
appendfilename "appendonly-7005.aof"
# rdb文件路径
dbfilename dump-7000.rdb
在6个目录下都创建这个配置文件,**需要修改端口号。**如果有人难得一个个修改可以想我一样,可使用vim正则匹配批量修改:%s/7000/7001/g
- 构建启动脚本
别人写的redis_cluster_start.sh
(作参考)
bash
#!/bin/bash
# 定义Redis集群节点的端口号
PORTS=(7000 7001 7002 7003 7004 7005)
# 定义Redis集群节点的工作目录
WORKING_DIR=/path/to/redis-cluster
# 创建Redis集群节点的配置文件和数据目录
for port in "${PORTS[@]}"
do
mkdir -p $WORKING_DIR/$port
echo "port $port" > $WORKING_DIR/$port/redis.conf
echo "dir $WORKING_DIR/$port" >> $WORKING_DIR/$port/redis.conf
done
# 启动Redis集群节点
for port in "${PORTS[@]}"
do
redis-server $WORKING_DIR/$port/redis.conf --daemonize yes
done
# 等待Redis集群节点启动完成
sleep 5
# 创建Redis集群
redis-cli --cluster create \
$(hostname -I | awk '{print $1}'):7000 \
$(hostname -I | awk '{print $1}'):7001 \
$(hostname -I | awk '{print $1}'):7002 \
$(hostname -I | awk '{print $1}'):7003 \
$(hostname -I | awk '{print $1}'):7004 \
$(hostname -I | awk '{print $1}'):7005 \
--cluster-replicas 1
# 输出Redis集群的信息
redis-cli cluster nodes
# 完成启动Redis集群
echo "Redis cluster started successfully!"
我用的redis_cluster_start.sh
bash
#!/bin/bash
# 定义Redis集群节点的端口号
PORTS=(7000 7001 7002 7003 7004 7005)
#工作目录
WORKING_DIR=/usr/local/redis-cluster
#启动redis集群节点
for port in "${PORTS[@]}"
do
redis-server $WORKING_DIR/$port/redis.conf
done
echo "Redis started successfully!"
记得要给redis_cluster_start.sh
加上可执行的权限
bash
chmod +x redis_cluster_start.sh
我这里只是将6个redis服务启动了,但他们都是单独运行的。
- 查看服务是否启动
bash
ps -ef | grep redis-server
集群连接
使用redis提供的集群工具
bash
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
replicas 1
表示一个master
节点只有一个salve
节点 。
查看集群节点信息
bash
redis-cli -c -p 7000 cluster nodes
集群使用
bash
redis-cli -c -p 7000
-c
参数是为了指明连接到集群的节点
多插入几条数据看看有什么变化哦
结言
有些的不对的地方欢迎扇我,别客气
【参考文章】
Redis集群的原理和搭建 - 掘金