首页 > 其他 > 详细

redis的集群、主从复制、CAP、paxos

时间:2021-01-19 09:23:54      阅读:53      评论:0      收藏:0      [点我收藏+]

redis单机、单节点、单实例

问题:

1.单点故障

2.容量有限

3.压力

 

 

 

解决:AKF

X: 全量、镜像

Y: 业务、功能

Z: 优先级、逻辑再拆分

x: 主备

Y: 按照业务拆分(微服务)

z: 将key拆成多份,每份装一个库里

 

 

 

通过AKF、一变多(主备)

问题:怎么保持数据一致性?

强一致性破坏可用性。原:为什么一变多,解决可用性。(矛盾)

1.容忍数据丢失一部分

2.异步发送、第一个redis发送kafka(可靠、集群、响应速度快)、当第一个挂掉、另外备用的顶上去,数据从kafka中拿

 

主备: 一台工作、其他的等待主挂了在工作

主从:三台一起工作、

 

 

redis一般使用主从、那么主又有单点故障、所以需要对主做HA(高可用)

主:并不是不允许挂掉、而是当主挂掉、来一个服务顶掉挂掉的主,对外是一种没有挂掉的感觉。

 

所以主需要一个程序监控。

 

一个程序:也有单点故障的问题。

 

监控:只需要一部分决策成功即可(弱一致性 1或2个) 1:统计不准确,比如网络不通、出现脑裂现象,因为一个决策,一说ok,一个说不ok,第三个已经不重要了

2:解决脑裂问题、

 

 

启动redis

1.service redis_6379 start

2.redis-server ./6379.conf

进入客户端:

1.redis-cli -9 6379

5.0以前是slaveof 127.0.0.1 6379
5.0以后是replicaof 1270.0.1 6379

daemonize no
1.阻塞启动 日志打印到控制台

条件:在utils目录下执行 ./install_server.sh
Port           : 6382
Config file    : /etc/redis/6382.conf 配置文件
Log file       : /var/log/redis_6382.log 日志文件
Data dir       : /var/lib/redis/6382
Executable     : /opt/bigdata/redis5/bin/redis-server
Cli Executable : /opt/bigdata/redis5/bin/redis-cli
![image-20210117235700028](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210117235700028.png)

生成端口:6380第一台、6381第二台、6380第三台。
将/etc/redis/目录对应的配置文件copy出来,修改daemonize no
6380启动:
redis-server ./6380.conf

6381启动:
redis-server ./6381.conf  --replicaof 127.0.0.1 6380
6381出现:
1. Connecting to MASTER 127.0.0.1:6380
2. MASTER <-> REPLICA sync started
3. Flushing old data
4. Loading DB in memory
6380出现:
![image-20210118003100831](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210118003100831.png)

6382启动:
redis-server ./6382.conf --replicaof 127.0.0.1 6380
6381出现:
1. Connecting to MASTER 127.0.0.1:6380
2. MASTER <-> REPLICA sync started
3. Flushing old data
4. Loading DB in memory
6380出现:
![image-20210118003041775](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210118003041775.png)







replica-serve-stale-data yes
replica-read-only yes 备机保存
repl-diskless-sync no 主从是通过网络还是磁盘

repl-backlog-size 1mb 
#增量复制

min-replicas-to-write 3
min-replicas-max-lag 10

  

 

当主6380挂掉

6381和6382一直循环出现: Connecting to MASTER 127.0.0.1:6380 MASTER <-> REPLICA sync started Error condition on socket for SYNC: Connection refused

 

哨兵自动选主

哨兵1: 26380.conf
port 26380
sentinel monitor mymaster 127.0.0.1 6380 1

哨兵2: 26381.conf
port 26381
sentinel monitor mymaster 127.0.0.1 6381 2

哨兵3: 26382.conf
port 26382
sentinel monitor mymaster 127.0.0.1 6382 3


开启主从集群:
1.redis-server ./6380.conf
2.redis-server ./6381.conf --replicaof 127.0.0.1 6380
3.redis-server ./6382.conf --replicaof 127.0.0.1 6380


开启监控:
redis-server ./26380.conf --sentinel
redis-server ./26381.conf --sentinel
redis-server ./26382.conf --sentinel

结论:
1.哨兵监控到了8380、6381、6382
2.也监控到了其他哨兵
3.哨兵会动配置文件,往26380、26381、26382配置文件加入监控到的其他哨兵信息
4.通过发布订阅发现其他哨兵( PSUBSCRIBE *可以查看)
"127.0.0.1,26381,e48a67a20bb64588c9bbc98826cae61dd2906b3e,6,mymaster,127.0.0.1,6381,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
4) "127.0.0.1,26380,ec6e1806cf9c782acec81397aa65b3870b7900f6,6,mymaster,127.0.0.1,6380,0"
1) "pmessage"
2) "*"
3) "__sentinel__:hello"
一直在相互发送信息hello

  

 

 

 

 

 

redis的集群、主从复制、CAP、paxos

原文:https://www.cnblogs.com/bigdata-familyMeals/p/14295927.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!