redis的分片机制 && 代理机制

本文探讨了Redis的分片机制,通过业务拆分与哈希函数优化,解决大规模用户数据存储问题。重点讲解了环形Hash和LVS/Lnginx代理的运用,以及高可用性的keepalived实例。讨论了缓存穿透问题及应对措施,同时反思了数据库扩容策略。
摘要由CSDN通过智能技术生成

redis 的分片机制

  • 根据业务逻辑进行数据拆分
  • redis1 提供订单查询 redis2 提供用户查询
    在这里插入图片描述

  • 当用户数据量太大时,一台redis不能全部存储
  • 对 redis的key进行计算取模(取模数为你redis的机器数量)
  • 缺点:取模数是固定的,不易于扩展(当三台机器不够了,需要扩展到十台,需要重新计算,考虑老数据查询问题)
    在这里插入图片描述

  • 使用环形hash的方式
  • 重点是计算hash的方式
    在这里插入图片描述

在这里插入图片描述

  • 优点:增加节点,可以分担其他节点的压力,不会造成全局洗牌
  • 缺点:新增节点后,会造成一部分数据不能命中(原先区间3的数据在redis2上保存)
  • 问题:缓存穿透,压到数据库上
    • 方案:没找到取最近的两个节点的数据(redis3上没找到,找redis2上)
    • 设计hash方案时,保证区间交叉,使数据保持平衡性(node1- node2 - node1 - node2)
      在这里插入图片描述

redis是用来做缓存的,不建议做数据库,所以数据丢失是允许的
反思:如果mysql数据库要扩容怎么做?数据重新计算整理

redis的代理机制

  • 客户端直连redis

  • 成本高,浪费性能
    在这里插入图片描述

  • 使用代理机制(nginx)

正向代理:我访问国外服务器,国外服务器访问谷歌,服务对象是我(客户端)
反向代理:我打电话给10086,10086转话务员。服务对象是话务员(服务端)

  • 减轻redis的连接数
    在这里插入图片描述
  • LVS 英文全称是Linux Virtual Server,即Linux虚拟服务器,是一个虚拟的服务器集群系统。
    • LVS主要用于多服务器的负载均衡。
    • 它工作在网络层,可以实现高性能,高可用的服务器集群技术。
    • 它可把许多低性能的服务器组合在一起形成一个超级服务器。
    • 它配置非常简单,且有多种负载均衡的方法。
    • 它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。

1.3 LVS和Nginx的对比
一、nginx工作在网络的应用层,主要做反向代理;lvs工作在网络层,主要做负载均衡。nginx也同样能承受很高负载且稳定,但负载度和稳定度不及lvs。
二、nginx对网络的依赖较小,lvs就比较依赖于网络环境。
三、在使用上,一般最前端所采取的策略应是lvs。 nginx可作为lvs节点机器使用。

  • keepalived 高可用机制,监控机器,主坏了,备用机自动顶替
    • 监控 LVS 和 proxy
    • LVS 主坏了,备用机自动顶替
    • proxy 一台坏了,LVS就不往代理上发送请求
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值