本文目标
在一台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实例。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。