美文网首页
缓存架构实战-04-主从

缓存架构实战-04-主从

作者: 西海岸虎皮猫大人 | 来源:发表于2020-08-28 20:39 被阅读0次
    读写分离

    单机redis qps大概上万到几万不等
    通过读写分离达到10万+qps
    架构一主多从,master负责写,slave负责读
    数据从master同步到slave
    可以水平扩容

    replication

    master异步复制到slave
    一个master可以配置多个slave
    slave可以连接其他slave
    slave复制不会block master工作
    slave复制过程中,读操作使用旧数据,复制完成时,需要删除旧数据集加载新数据集,此时对外暂停服务
    slave横向扩容提高读吞吐量
    master需要做持久化,否则master宕机重启所有slave清空

    主从复制原理

    master开启线程,rdb发送给slave,slave把磁盘上的rdb加载到内存
    master内存缓存新数据,发送给slave
    第二次连接只会发送slave缺少的数据

    端点续传

    slave从上次复制的offset开始复制

    无磁盘化复制

    master不落地磁盘

    # 开启无磁盘化复制
    repl-diskless-sync yes
    # 等待时长
    repl-diskless-sync-delay 5
    
    过期key处理

    slave不会过期key,master过期key或者通过lru淘汰key,模拟del命令发送给slave

    主从深入剖析

    slave内部定时任务check是否有master需要socket连接
    如果master配置了requirepass,则slave发送masterauth口令认证
    master启动全量复制
    master接收新数据异步发送给slave
    master保存每个slave的offset
    slave发现master runid变化触发全量复制
    千兆网卡一般每秒100mb,6g文件很可能超过60秒,slave会认为传送失败,需要调大timeout

    主从架构部署
    # 从节点配置
    slaveof redis-01 6379
    # 绑定ip
    bind 192.168.68.102
    # 从节点强制接收请求(默认开启)
    slave-read-only yes
    # 从节点配置主节点口令
    masterauth redis-pass
    
    
    # 主节点配置口令
    requirepass redis-pass
    # 绑定ip
    bind 192.168.68.101
    
    # 分别启动主节点和从节点redis
    # 主节点redis-cli指定口令
    redis-cli -a redis-pass
    # 主节点设置key后从节点可以get key
    
    qps压测

    使用redis-benchmark

    redis-benchmark -h 127.0.0.1
    

    生产环境网络请求本身就有开销,redis吞吐不一定这么高
    复杂操作\大串数据拼接

    主从架构99.99%高可用

    slave挂掉不会影响可用性
    master挂掉系统不可用
    redis高可用,主备切换,把某个slave转化为master
    sentinel node监控master

    相关文章

      网友评论

          本文标题:缓存架构实战-04-主从

          本文链接:https://www.haomeiwen.com/subject/ibqrsktx.html