乐趣区

关于redis:virtualbox-Linux-配置Redis无中心集群三主三从

本文指标

在一台 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 实例。

退出移动版