使用三台服务器进行 Redis 主从(三主三从)模式搭建

搞了两天终于启动起来了,后续还需要对细节进行修改,暂做记录。
准备三台服务器,一台服务器上启动2个端口进程。分别为7000和7001
在这里插入图片描述
在这里插入图片描述
① 上传redis 5.0.0.tar.gz 安装包到 /app/module/下(可根据自身情况自定义)
在这里插入图片描述② 在module目录下创建redis目录,并将安装包解压到redis目录下
在这里插入图片描述解压完成后进行编译。进入 redis-5.0.0目录下 执行 make 命令,等待一小会儿
执行完毕make后再执行 make MALLOC=libc, 等待一小会儿
执行完make MALLOC=libc后再执行 cd src ; make install。
这几个过程基本不会出错。如果出错,90%是ruby的问题,大佬自行解决一下。

cd redis-5.0.0
make
make MALLOC=libc
cd src ; make install

③ 在redis目录下创建cluster目录,用于存放两个节点的配置文件和 dump目录 logs目录
在这里插入图片描述
在这里插入图片描述④ cat redis-5.0.0目录下的redis.conf文件,筛选出所有未加注释的配置项
在这里插入图片描述这里其实可以只配置相关几项就可以,有很多默认项。这里没做整理,后面补充。
在这里插入图片描述
粘贴一下内容,并做修改。前面带 * 号的 是要注意的地方,路径包括端口。

*bind 本机ip
protected-mode yes
*port 7000 
tcp-backlog 511
timeout 0
tcp-keepalive 300
*daemonize yes
supervised no
*pidfile "/var/run/redis_7000.pid"
loglevel notice
*logfile "/app/module/redis/cluster/logs/redis_7000.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
*dir "/app/module/redis/cluster/dump/"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
*appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
cluster-enabled yes
*cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

⑤ 这里配置的7000端口的实例,将该配置文件复制一份,命名为7001。将文件内的相关端口位置(7000)全部更改为7001。

这样,一台服务器上的两个实例就配置完。将两个配置文件 scp到其他两台服务器上的相应目录。 三台服务器的路径尽量创建为一样的,这样复制方便,删改查也方便。
⑥scp配置文件到其他两台服务器
/app/module/redis/cluster/ 下执行 scp 命令
在这里插入图片描述⑦以第一台配置的标准修改其他两台服务器的配置文件,如果路径都一致,那么只需要修改绑定的ip为当前本机ip即可。 必须注意配置文件中设置的路径是存在的。否则启动不起来。可以通过logs中的日志进行查看。

⑧ 启动redis服务
在每台服务器的redis安装目录 的 src下,执行
./redis-server /app/module/redis/cluster/redis7000.conf
./redis-server /app/module/redis/cluster/redis7001.conf
命令,启动两个进程(也可写一个脚本,一下搞定)。
在这里插入图片描述
在这里插入图片描述
通过 ps -ef |grep redis查看是否启动
在这里插入图片描述其他两台一样操作。
⑨ 下面启动集群
在随便一台服务器上执行./redis-cli --cluster create 20.201.22.159:7000 20.201.22.159:7001 20.201.22.160:7000 20.201.22.160:7001 20.201.22.161:7000 20.201.22.161:7001 --cluster-replicas 1
在这里插入图片描述在这里插入图片描述在这里插入图片描述这样就成了。可以使用./redis-cli -p 7000 -h 20.201.22.159 -c 连接客户端,输入 cluster info 查看集群信息。输入cluster nodes查看节点信息。
随便找一个节点,连接上客户端, set 一组kv,再上别的节点连上客户端get一下这个kv。看看效果。

总体写的有些凌乱。其中主要的点在于:
1、路径
2、所有执行的命令都没有出 redis安装目录
3、注意每个节点上端口的分配
4、使用root权限来安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值