• Redis主从


    redis主从工作原理:

      全量数据复制:salve启动时,会和主节点建立长连接,向主节点发送一个psync的命令,请求复制数据。master收到命令,会通过bgsave生成当前数据的RDB快照,将数据发送给slave,slave会清空老数据并且加载master发送来的RDB数据。在这期间客户端可能又会有新的修改命令到master,master会将新命令缓存,持续通过长连接发送给salve,salve持续恢复数据。

      部分数据复制:slave和master断开重连之后,redis2.8之后支持部分数据复制:断点续传。master会有一个缓冲区,相当于一个缓冲队列,存放最近的命令,先进先出。slave和master断开重连之后,会将同步数据的偏移量(记录同步数据的位置)传到master。如果缓冲区能找到这个位置,直接从缓冲区增量复制,如果找不到,直接进行全量复制。

    redis主从架构搭建:在一台服务器启动两个redis实例模拟主从,6379为主,6380为从,redis版本号为5.0.10,redis运行的数据放在/usr/local/redis-5.0.10/data

    创建两个目录,分别存储两个目录的数据(根据实际redis存储数据的情况处理):

    cd /usr/local/redis-5.0.10/data/
    mkdir 6379 6380

    copy一分配置文件

    cd /usr/local/redis-5.0.10
    cp redis-conf redis6380.conf

    编辑slave配置,要注意redis版本号!!!不同的版本可能出现配置不同。5.0之前使用slaveof

    # 修改端口号
    port 6380 
    # redis进程号文件
    pidfile /var/run/redis_6380.pid  
    # 指定日志文件
    logfile "6380.log"
    # 指定数据目录
    dir /usr/local/redis‐5.0.10/data/6380
    # 从本机6379实例恢复数据
    replicaof 192.168.0.16 6379 
    # 配置从节点只读
    replica‐read‐only yes 
    # 启动主实例
    src/redis-server redis.conf
    # 启动从实例
    src/redis-server redis6380.conf

    打开两个窗口:一个连接主实例,src/redis-cli,一个连接从实例,src/redis-cli -p 6380,在master上set一个键值,在slave上马上就可以看到

      

  • 相关阅读:
    [Leetcode] Longest Substring Without Repeating Characters
    [Leetcode] Clone Graph
    [Leetcode] LRU Cache
    行转列
    微信 Demo
    微信开发-step by stemp
    知识库
    SSAS GUID 添加 行计数,非重复计数 等 遇到的莫名其妙的问题
    javascript 前段MVVM 框架
    微信接口开发
  • 原文地址:https://www.cnblogs.com/dlcode/p/13936237.html
Copyright © 2020-2023  润新知