共计 2539 个字符,预计需要花费 7 分钟才能阅读完成。
本文指标
在一台 virtualbox 创立的虚拟机上配置 Redis 集群,三个主节点,三个从节点。
本文有余
因 virtualbox 创立的虚拟机端口映射有些问题,所以没有在三台虚拟机上别离部署主节点和从节点,然而思路是一样的,依然有参考价值
1. 如果没有 wget,请先装置
yum -y install wget
2. 在 Linux 根目录下顺次执行以下命令
mkdir /data
yum -y install gcc automake autoconf libtool make
wget https://download.redis.io/releases/redis-6.2.0.tar.gz
tar xzvf redis-6.2.0.tar.gz -C /data/
cd /data/
mv redis-6.2.0/ redis
cd redis/
make
mkdir /data/redis/data
mkdir cluster
cd cluster/
mkdir 7001 7002 7003 7004 7005 7006
cp /data/redis/redis.conf 7001/
3. 批改配置文件办法
能够应用传统做法,用 vim 关上,而后编辑保留
cd 7000/
vim redis.conf
也能够间接用一些 ssh 工具去批改,比拟不便
先找到文件,而后双击
批改实现后 ctrl+ s 保留即可
4. 配置文件批改内容
bind 192.168.188.1 #每个实例的配置文件批改为对应节点的 ip 地址
port 7001 #监听端口,运行多个实例时,须要指定布局的每个实例不同的端口号
daemonize yes #redis 后盾运行
pidfile /var/run/redis_7001.pid #pid 文件,运行多个实例时,须要指定不同的 pid 文件
logfile /var/log/redis_7001.log #日志文件地位,运行多实例时,须要将文件批改的不同。dir /data/redis/data #存放数据的目录
appendonly yes #开启 AOF 长久化,redis 会把所接管到的每一次写操作申请都追加到 appendonly.aof 文件中,当 redis 重新启动时,会从该文件复原出之前的状态。appendfilename "appendonly.aof" #AOF 文件名称
appendfsync everysec #示意对写操作进行累积,每秒同步一次
以下为关上正文并批改
cluster-enabled yes #启用集群
cluster-config-file nodes-7001.conf #集群配置文件,由 redis 自动更新,不须要手动配置,运行多实例时请注批改为对应端口
cluster-node-timeout 5000 #单位毫秒。集群节点超时工夫,即集群中主从节点断开连接工夫阈值,超过该值则认为主节点不能够,从节点将有可能转为 master
cluster-replica-validity-factor 10 #在进行故障转移的时候全副 slave 都会申请申请为 master,然而有些 slave 可能与 master 断开连接一段时间了导致数据过于古老,不应该被晋升为 master。该参数就是用来判断 slave 节点与 master 断线的工夫是否过长。(计算方法为:cluster-node-timeout * cluster-replica-validity-factor,此处为:5000 * 10 毫秒)cluster-migration-barrier 1 #一个主机将放弃连贯的最小数量的从机,以便另一个从机迁徙到不再被任何从机笼罩的主机
cluster-require-full-coverage yes #集群中的所有 slot(16384 个)全副笼罩,能力提供服务
6. 复制到其它节点
cp 7001/redis.conf 7002/
cp 7001/redis.conf 7003/
cp 7001/redis.conf 7004/
cp 7001/redis.conf 7005/
cp 7001/redis.conf 7006/
7. 批改复制的文件,把其中 7001 的全副替换为 700x(x=2,3,4,5,6)即可
8. 启动 Redis 实例
cd /data/redis/src/
./redis-server ../cluster/7001/redis.conf &
./redis-server ../cluster/7002/redis.conf &
./redis-server ../cluster/7003/redis.conf &
./redis-server ../cluster/7004/redis.conf &
./redis-server ../cluster/7005/redis.conf &
./redis-server ../cluster/7006/redis.conf &
9. 查看启动状态
你可能没有 netstat 命令,须要装置 yum -y install net-tools
netstat -lntp |grep redis
每个实例有两行记录,一个是端口,一个是端口 + 一万的,如 7001 和 17001
10. 创立集群
cd /data/redis/src/
./redis-cli --cluster create --cluster-replicas 1 192.168.188.1:7001 192.168.188.1:7002 192.168.188.1:7003 192.168.188.1:7004 192.168.188.1:7005 192.168.188.1:7006
cluster-replicas 前面的参数 1 代表每个主节点有一个从节点,默认后面是的主节点,所以前三个是主节点,后三个是从节点
至此,集群创立结束。
11. 测试
# 登录一个节点
./redis-cli -h 192.168.188.1 -c -p 7001
#设置一个值
set name teststr
#退出
exit
#登录另一个节点
./redis-cli -h 192.168.188.1 -c -p 7002
#获取一个值
get name
12. 拓展
如果你想在三台机器上,部署三个主节点,三个从节点的完整版 Redis 集群,只须要将 7003,7004,7005,7006 部署到其它机器上即可。部署到其它机器,请确保任意两台机器上能够相互近程连贯到 redis 实例。
正文完