主从复制 哨兵机制 分布式会话

发布时间:2024年01月20日

Redis 主从复制

1 主从复制

主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据

无法解决: 1.master节点出现故障的自动故障转移

2 主从复制架构图

3 搭建主从复制

service network restart

vi /usr/local/redis-6.2.6/redis.conf

# 1.准备3台机器并修改配置
- master
    port 6379
    bind 0.0.0.0
    
- slave1
    port 6379
    bind 0.0.0.0
    slaveof masterip masterport
    slaveof 192.168.56.171 6379
?
- slave2
    port 6379
    bind 0.0.0.0
    slaveof 192.168.56.171 6379
?
?
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes 
# 密码,设置后访问Redis必须输入密码
requirepass 123321
    
bind 0.0.0.0
port 6379
daemonize yes
requirepass 123321
?
?
?
?
?
bind 0.0.0.0
port 6379
daemonize yes
replicaof 192.168.189.134 6379  
masterauth 123321
slaveof 192.168.189.134 6379
requirepass 123321
?
?
bind 0.0.0.0
port 6379
daemonize yes
replicaof 192.168.189.133 6379  
masterauth 123321
slaveof 192.168.189.133 6379
requirepass 123321
 
???????# 2.启动3台机器进行测试
- cd /usr/redis/bin
- ./redis-server /root/master/redis.conf
- ./redis-server /root/slave1/redis.conf
- ./redis-server /root/slave2/redis.conf

查看集群信息: info replication

Redis哨兵机制

1 哨兵Sentinel机制

Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。简单的说哨兵就是带有自动故障转移功能的主从架构

无法解决: 1.单节点并发压力问题 2.单节点内存和磁盘物理上限

2 哨兵架构原理

3 搭建哨兵架构

# 1.在主节点上创建哨兵配置
- 在Master对应redis.conf同目录下新建sentinel.conf文件,名字绝对不能错;
?
# 2.配置哨兵,在sentinel.conf文件中填入内容:
-?sentinel monitor 被监控数据库名字(自己起名字) ip port 2
sentinel monitor mymaster 192.168.189.133 6379 1
sentinel auth-pass mymaster 123321
?
# 3.启动哨兵模式进行测试
./redis-sentinel ?/usr/local/redis-6.2.6/sentinel.conf 
?
说明:这个后面的数字2,是指当有两个及以上的sentinel服务检测到master宕机,才会去执行主从切换的功能。

id 越小 优先权越大

偏移量越大,优先权越高。

Redis实现分布式会话

1 什么是分布式会话

1 这是我么之前学过的注册登录模式

2 如果非常多的人访问,因为单台服务器的访问承受能力是有限的,那么我们就想用多态服务器来承担压力

3 一般通过负载均衡的方式来实现,来分担服务器的压力。

4 负载均衡解释。

官方解释: 网络专用术语,负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

大白话:nginx就是一个接受请求,然后决定请求最终那个服务器来接受,这个算法我们后面给大家讲nginx或者ribbon的时候给大家补充,但是有时候会存在这样的问题,用户1第一次请求到tomcat1, 下一次请求的时候就可能请求到tomcat2了,这样会存在session丢失,然后系统提示我们需要登录。

5 解决方案。

  • session 复制,也就是当一个服务器有新的session保存的时候,通过服务器通信机制,然后将session复制到其他的服务器,如果服务器较多的话,会存在大量的网路和io占用,效率低下。

  • redis实现session共享。

文章来源:https://blog.csdn.net/weixin_67366360/article/details/135683992
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。