redis6.0集群三台机器配置三主三从节点


概述: 公司有redis集群的需求,但由于机器资源不足,准备就用三台机器,做三主三从节点吧,如果你有相同的需求,可以查看下面详细的配置方式,但需要注意,配置过程中:从节点对应的主节点在创建集群的时候,不要分配到同一台主机上,原因是:redis cluster集群模式的原理是当每一组主节点出现故障的时候,同组的从节点会接替工作,一组主从节点会负责管理对应的key槽的分配和负载,也就是说,同一组主从节点中可以一主多从,当然,也可以是一主一从。

说明:每台主机上将会运行6379端口一个主节点,6380端口一个从节点。

主机规划:
rediscs-01   172.11.84.249
rediscs-02   172.11.84.250
rediscs-03   172.11.84.251

redis版本: redis 6.2.1

环境和包准备(以下是三台机器都要执行):
1、创建需要的目录:
#mkdir -p /usr/local/redis6csdb/6379/{conf,data,log}
#mkdir -p /usr/local/redis6csdb/6380/{conf,data,log}
#mkdir -p /usr/local/redis6/bin

2、下载安装包编译安装(需提前安装好编译工具如gcc)
#wget https://download.redis.io/releases/redis-6.2.1.tar.gz && tar -zxvf redis-6.2.1.tar.gz
#cd redis-6.2.1 && make && make install
#cp ./src/redis-* /usr/local/redis6/bin/

3、相关配置文件案例
#cat /usr/local/redis6csdb/6379/conf/redis.conf
bind 0.0.0.0
protected-mode no
port 6379
tcp-backlog 1024
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/usr/local/redis6csdb/6379/log/redis.log"
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir "/usr/local/redis6csdb/6379/data"
maxmemory 7516192760
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
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-6379.conf
cluster-node-timeout 15000
cluster-require-full-coverage no
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 0
set-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 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes

#cat /usr/local/redis6csdb/6380/conf/redis.conf
bind 0.0.0.0
protected-mode no
port 6380
tcp-backlog 1024
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /var/run/redis_6380.pid
loglevel notice
logfile "/usr/local/redis6csdb/6380/log/redis.log"
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir "/usr/local/redis6csdb/6380/data"
maxmemory 7516192760
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
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-6380.conf
cluster-node-timeout 15000
cluster-require-full-coverage no
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 0
set-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 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes

4、系统参数调整(按需修改),否则日志出现错误(但可以正常启动)
#echo "vm.overcommit_memory = 1"  >> /etc/sysctl.conf
#echo "net.core.somaxconn = 2048"  >> /etc/sysctl.conf
#sysctl vm.overcommit_memory=1
#sysctl net.core.somaxconn=2048

5、启动redis的6个节点:
#systemctl enable redis79 && systemctl start redis79
#systemctl enable redis80 && systemctl start redis80

附上启动脚本:
#cat /usr/lib/systemd/system/redis79.service
####6379####

[Unit]
Description=redis-server6379
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis6/bin/redis-server /usr/local/redis6csdb/6379/conf/redis.conf
ExecStop=/usr/local/redis6/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target

#cat /usr/lib/systemd/system/redis80.service
####6380####

[Unit]
Description=redis-server6380
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis6/bin/redis-server /usr/local/redis6csdb/6380/conf/redis.conf
ExecStop=/usr/local/redis6/bin/redis-cli -h 127.0.0.1 -p 6380 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target

(截止以上,三台机器都需要执行!)

6、创建集群
说明:以上6个redis节点启动成功后,开始将6个分散的节点创建为一个集群模式,3个主节点,每个主节点对应有一个从节点。此处需要注意,执行了下面的命令后,会提示确认信息,并且还会有每个主节点对应的从节点创建信息,如果主从节点被分配到了一个机器上,我们需要退出创建操作,然后先创建3个主节点,在单独将指定的从节点加入到指定的主节点中。 如果是6个或者更多主机,每个主机只跑一个redis节点实例,该处可忽略。

#redis-cli --cluster create 172.11.84.249:6379 172.11.84.249:6380 172.11.84.250:6379 172.11.84.250:6380 172.11.84.251:6379 172.11.84.251:6380 --cluster-replicas 1


7、创建成功后的检查
#ls /usr/local/redis6csdb/6379/data/
dump.rdb  nodes-6379.conf
#ls /usr/local/redis6csdb/6380/data/
dump.rdb  nodes-6380.conf
#ls /usr/local/redis6csdb/6379/log/
redis.log
#ls /usr/local/redis6csdb/6380/log/
redis.log

# redis-cli -c -h 127.0.0.1 -p 6379
>info
........
........
# Replication
role:master
connected_slaves:1
slave0:ip=172.11.84.250,port=6380,state=online,offset=7324945753693,lag=1
........
........


总结: 以上就是redis 6.0下集群模式的配置全部过程了, 非常值得注意的是这是三台机器创建6个节点,需要错开对应启动和分配,另外,虽然一般这是内网访问,但还是建议redis集群开启密码的认证,进一步保证集群的安全。












本文标签: 集群 redis6.0 三台机器 三主三从节点

内容版权声明:【蓝色网居】部分资源来源于网络,如有侵犯您的所有权,请随时告知我们,我们将立即删除!感谢配合!

转载请注明出处:https://blog.ff56.cn/shujuku/1658218517.html


【手机扫一扫查看文本】

手机扫一扫 手机扫一扫查看文本 手机扫一扫





mysql5.7 常用操作 postgresql 不停机 情况处理 三主三从 mysql慢日志 任务事件 主从同步 mysqldump 增加从库 数据恢复 三主三从节点 dump操作 增量恢复 redis3.0集群环境 redis安装 持久化 备份 xtrabackup 定时执行 5.7 自动备份 方案 binlog redis 日志归档 三台机器 redis6.0 general_log