当前位置: 首页 > news >正文

11.1Redis高可用集群部署

Redis高可用集群

主开启aof

一、主从复制

(一) 一主一从

1.修改配置文件版

replicof {masterHost} {masterPort}

#从
[root@web1 ~]# yum install -y redis
#修改配置文件
[root@web1 ~]# vim /etc/redis.conf 
#关闭保护模式
protected-mode no
#修改登录地址
#bind 127.0.0.1 -::1
bind 192.168.157.169 #从自己的
#开启replicaof 设置master密码
# replicaof <masterip> <masterport>replicaof 192.168.157.168 6379# masterauth <master-password>masterauth 123.com[root@web1 ~]# systemctl start redis#数据同布[root@web1 ~]# redis-cli -h 192.168.157.169
192.168.157.169:6379> keys *
1) "z"
2) "a"
3) "bbb"
4) "kk"
5) "v"
6) "m"
2.slaveof命令
#主有密码的情况下
#从不用修改配置文件
192.168.157.169:6379> slaveof 192.168.157.168 6379
OK
192.168.157.169:6379> config set masterauth 123.com
OK
192.168.157.169:6379> info
...
# Replication
role:slave
master_host:192.168.157.168 
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_read_repl_offset:1722
slave_repl_offset:1722
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:414177665a85393439e43298cd8c6bb03073aaa3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1722
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1695
repl_backlog_histlen:28
...
#
192.168.157.168:6379> SLAVEOF no one
OK
192.168.157.169:6379> info
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:d346dee05895dad40b48259f7bf53bbc29c82212
master_replid2:414177665a85393439e43298cd8c6bb03073aaa3
master_repl_offset:2842
second_repl_offset:2843
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1695
repl_backlog_histlen:1148
[root@nfs-server ~]# redis-cli -h 192.168.157.168 -a 123.com info
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Server
redis_version:7.2.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:960574b97fce8453
redis_mode:standalone

(二)一主两从

主:192.168.157.168

从:192.168.157.169

从:192.168.157.181

#修改bind PROTECT-MODE replicaof
#关闭保护模式
protected-mode no
#bind 127.0.0.1 -::1
bind 192.168.157.169 #从自己的
#开启replicaof 设置master密码
# replicaof <masterip> <masterport>
replicaof 192.168.157.168 6379
# masterauth <master-password>
masterauth 123.com

(三)树状结构

主:192.168.157.168

redis-slave1:192.168.157.169

redis-slave2:192.168.157.181

#在上述基础上 从没设置密码  把一个变成另一个从的主 
[root@redis-slave2 ~]# vim /etc/redis.confreplicaof 192.168.157.169 6379#验证
[root@redis-slave2 ~]# redis-cli -h 192.168.157.181
192.168.157.181:6379> keys *
1) "z"
2) "a"
3) "aaaa"
4) "m"
5) "bbb"
6) "kk"
7) "v"
192.168.157.181:6379> info
....
# Replication
role:slave
#master_host:192.168.157.169
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_read_repl_offset:4270
slave_repl_offset:4270
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:414177665a85393439e43298cd8c6bb03073aaa3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4270
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:4117
repl_backlog_histlen:154
....
##测试
#主
[root@redis-master ~]# redis-cli -h 192.168.157.168
192.168.157.168:6379> keys *
(error) NOAUTH Authentication required.
192.168.157.168:6379> auth 123.com
OK
192.168.157.168:6379> keys *
1) "aaaa"
2) "m"
3) "a"
4) "bbb"
5) "v"
6) "kk"
7) "z"
192.168.157.168:6379> flushall
OK
192.168.157.168:6379> set a 1
OK
192.168.157.168:6379> set b 2
OK
192.168.157.168:6379> 
#新主
[root@redis-slave1 ~]# redis-cli -h 192.168.157.169
192.168.157.169:6379> keys *
1) "a"
2) "b"
#小从
[root@redis-slave2 ~]# redis-cli -h 192.168.157.181
192.168.157.181:6379> keys *
1) "b"
2) "a"

二、哨兵模式

redis-master:192.168.157.168

redis-slave1:192.168.157.169

redis-slave2:192.168.157.181

一主两从模式 都不设置密码(生成环境要设)

#每个节点启动一个redis进程一个哨兵进程
#####主
[root@redis-master ~]# vim /etc/redis.conf
#注解密码
#修改哨兵配置
[root@redis-master ~]# vim /etc/redis-sentinel.conf 
#后台运行
daemonize yes
#设置监控IP 端口号 从数量
sentinel monitor mymaster 192.168.157.168 6379 2
#启动哨兵
[root@redis-master ~]# systemctl start redis-sentinel.service
##检测是否启动
[root@redis-master ~]# netstat -anptu | grep redis
tcp        0      0 0.0.0.0:26379           0.0.0.0:*               LISTEN      43779/redis-sentine 
tcp        0      0 192.168.157.168:6379    0.0.0.0:*               LISTEN      43012/redis-server  
tcp        0      0 192.168.157.168:6379    192.168.157.168:58704   ESTABLISHED 43012/redis-server  
tcp        0      0 192.168.157.168:6379    192.168.157.168:58706   ESTABLISHED 43012/redis-server  
tcp        0      0 192.168.157.168:58704   192.168.157.168:6379    ESTABLISHED 43779/redis-sentine 
tcp        0      0 192.168.157.168:58706   192.168.157.168:6379    ESTABLISHED 43779/redis-sentine 
tcp6       0      0 :::26379                :::*                    LISTEN      43779/redis-sentine
###redis-slave1
[root@redis-slave1 ~]# vim /etc/redis-sentinel.conf
sentinel monitor mymaster 192.168.157.168 6379 2
[root@redis-slave1 ~]# vim /etc/redis.confreplicaof 192.168.157.168 6379[root@redis-slave1 ~]# systemctl restart redis-sentinel.service
[root@redis-slave1 ~]# systemctl restart redis
###redis-slave1
[root@redis-slave2 ~]# vim /etc/redis-sentinel.conf
sentinel monitor mymaster 192.168.157.168 6379 2
[root@redis-slave2 ~]# systemctl start redis-sentinel.service
[root@redis-slave2 ~]# systemctl restart redis
#验证
[root@redis-master ~]# redis-cli -h 192.168.157.168
192.168.157.168:6379> info
....
# Replication
role:master
connected_slaves:2
#slave0:ip=192.168.157.169,port=6379,state=online,offset=54518,lag=1
#slave1:ip=192.168.157.181,port=6379,state=online,offset=54663,lag=1
...

模拟故障转移

#停主服务
[root@redis-master ~]# systemctl stop redis
#slave1 变成主了
[root@redis-slave1 ~]# redis-cli -h 192.168.157.169
192.168.157.169:6379> info
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.157.181,port=6379,state=online,offset=199099,lag=1
#slave2验证
[root@redis-slave2 ~]# redis-cli -h 192.168.157.181
192.168.157.181:6379> info
# Replication
role:slave
master_host:192.168.157.169
###自动切换主节点成功
###此时在开启主服务  变成从了
[root@redis-master ~]# redis-cli -h 192.168.157.168
192.168.157.168:6379> info
# Replication
role:slave
master_host:192.168.157.169
master_port:6379
#宕掉现有主节点 大概率会回到以前主节点

三、cluster集群

#在上述实验基础上 一主两从配置还在 
#主从都停止 redis进程和哨兵进程
#三台都添加cluster配置
root@redis-master redis]# vim /etc/redis.conf
cluster-enabled yes
cluster-config-file nodes-6379.conf  最好绝对路径
cluster-node-timeout 15000
root@redis-master redis]# systemctl start redis
root@redis-master redis]# netstat -anptu | grep redis
tcp        0      0 192.168.157.168:16379   0.0.0.0:*               LISTEN      5402/redis-server 1 
tcp        0      0 192.168.157.168:6379    0.0.0.0:*               LISTEN      5402/redis-server 1 
#集群模式不需要手动配置主从
#关闭  从上的相关配置
[root@redis-slave ~]# vim /etc/redis.conf#replicaof 192.168.157.168 6379
http://www.dtcms.com/a/288375.html

相关文章:

  • Js中var VS let VS const
  • Jmeter系列(7)-线程组
  • 6.表内容的操作之增、读
  • 【Linux服务器】-mysql数据库数据目录迁移
  • 打靶日记之xss-labs
  • undefined reference to ‘end‘
  • 从公共数据到医学研究:32 个生信数据库详解
  • [实战]巴特沃斯滤波器全流程解析:从数学原理到硬件实现
  • 磁盘阵列技术的功能与分类
  • 【面试题】大厂高压面经实录丨第三期
  • Python Pandas读取Excel表格中数据并根据时间字段筛选数据
  • 软件警告弹窗与兼容性问题
  • HD Video Converter Factory pro 高清视频转换器 v27.7.0 绿色中文便携版
  • centos7使用docker-compose部署项目
  • 《Linux 环境下 NTP 时间同步与 SSH 免密登录配置实战》
  • 树的基础知识总结
  • 移动硬盘无法读取怎么办?数据还可以抢救回来
  • STC增强型单片机寄存器 PWM EEPROM TMOD TCON
  • 数据结构的文件操作
  • scalelsd 笔记 线段识别 本地部署 模型架构
  • Spring7个事务传播行为和5个隔离级别
  • Java-Lambda表达式
  • 【Linux】Linux中重定向 及 dup2 详细讲解
  • Stream API
  • 2023 年 5 月青少年软编等考 C 语言八级真题解析
  • 本地安装部署Unstructured-api
  • ADC选型设计
  • SpringBoot项目打包加部署方案
  • Datawhale 7月学习
  • SCSAI工业智能体的核心特征