• windows10配置redis主从复制


    1、安装从服务器

    a)、找到redis实例,直接复制一份出来,如下图

     b)、修改从库端口号,打开从库文件夹找到redis.windows.conf和redis.windows-service.conf文件,修改端口

    修改完成之后,cd到从库安装目录,输入redis-server.exe redis.windows.conf,使用cmd就可以连接从库了。

     但是这也样每次都需要cd到文件夹进行启动,需要设置成服务,命令如下:

    redis-server --service-install redis.windows.conf --maxmemory 200m  --service-name redis6380

     2、配置主从

    a)、可以使用 SLAVEOF 命令, master 会开启一个跟 slave 间的同步,如果当前从服务器已经依赖了其他主服务器,那么会丢失掉旧主服务器的数据,对新主服务器进行数据同步, 如果想把从服务器升级为主服务器,使用SLAVEOF NO ONE就可以把从服务器升级成主服务器,这个命令不会丢失掉以前主从同步的数据。

     b)、配置永久复制

    打开redis.windows.conf文件,找到# slaveof <masterip> <masterport>这个地方,添加slaveof master的ip地址 master的端口

     测试

     3、主从同步的工作原理

    每一个 Redis master 都有一个 replication ID :这是一个较大的伪随机字符串,标记了一个给定的数据集。每个 master 也持有一个偏移量,master 将自己产生的复制流发送给 slave 时,发送多少个字节的数据,自身的偏移量就会增加多少,目的是当有新的操作修改自己的数据集时,它可以以此更新 slave 的状态。复制偏移量即使在没有一个 slave 连接到 master 时,也会自增,所以基本上每一对给定的

    Replication ID, offset

    都会标识一个 master 数据集的确切版本。

    当 slave 连接到 master 时,它们使用 PSYNC 命令来发送它们记录的旧的 master replication ID 和它们至今为止处理的偏移量。通过这种方式, master 能够仅发送 slave 所需的增量部分。但是如果 master 的缓冲区中没有足够的命令积压缓冲记录,或者如果 slave 引用了不再知道的历史记录(replication ID),则会转而进行一个全量重同步:在这种情况下, slave 会得到一个完整的数据集副本,从头开始。

    无需磁盘参与的复制

    正常情况下,一个全量重同步要求在磁盘上创建一个 RDB 文件,然后将它从磁盘加载进内存,然后 slave以此进行数据同步。

    如果磁盘性能很低的话,这对 master 是一个压力很大的操作。Redis 2.8.18 是第一个支持无磁盘复制的版本。在此设置中,子进程直接发送 RDB 文件给 slave,无需使用磁盘作为中间储存介质。

    无磁盘复制可以使用 repl-diskless-sync 配置参数。repl-diskless-sync-delay 参数可以延迟启动数据传输

    安全性问题

    如果开启了主从复制,一定要开启主从服务器的持久化,如果不开启持久化并且主服务器又是配置的默认自动启动,那么当主服务器挂了,然后在重新启动主服务器的时候,因为没有配置持久化,那么这个时候主服务器就是空数据集合,这个时候从服务器去复制主服务器的数据,发现主服务器是空的,那么会销毁从服务器自身的数据。这是非常危险的。所以如果没有开启持久化,那么自动启动这项服务应该要禁用

  • 相关阅读:
    Jetson AGX Xavier配置使用OpenCV(报错:No package 'opencv' found)
    centos7 lnmp
    php用户签到,领取红包
    php红包功能
    Mysql 主从复制
    mysql 小技巧
    区块链学习笔记一
    PHP 常用自定义函数
    centos7.4 搭建lnmp
    什么是跨域?怎么解决跨域问题?
  • 原文地址:https://www.cnblogs.com/zhaoyongjie-z/p/12556140.html
Copyright © 2020-2023  润新知