• Redis系列四之复制


    一、复制基本配置与演示

      为了避免单点故障,Redis提供了复制功能,可以实现自动同步的过程。

      1、配置

      同步后的数据分为两类:一类是主数据库(master),一类是从数据库(slave)。主数据库可以进行读写操作,当发生写操作时自动将数据同步给从数据库。而从数据一般只读,并接受主数据库同步过来的数据。

      在Redis使用复制功能,只需要在从数据库的配置文件中加入"salveof 主数据库IP 主数据库端口"即可,主数据库无需进行任何配置。

      2、Redis复制演示

      下面我们在同一台服务器上启动两个Redis实例,监听不同的端口,其中一个作为主数据库,另一个作为从数据库。

      首先,我们要复制一个Redis服务的配置文件,并取名为redis6380.conf。

      

      我们修改redis6380.conf配置文件中的端口号为6380,并且配置改Redis实例为主数据库的从数据库。

      

      配置从数据库

      

      接着,我做了两个启动Redis的bat批处理文件,用于启动两个Redis数据库:

      

      内容分别是:

     redis-server  redis.windows.conf    //启动主数据库
    redis-server  redis6380.conf       //启动从数据库

      现在我们启动主从数据库的客户端:

      主数据库的客户端就在Redis的安装目录下,双击redis-cli.exe即可。

      

      从数据库的启动,我们打开cmd,进入Redis的目录,输入

      

      这样,我们就有了两个Redis数据库服务端和客户端,下面就来演示复制的功能:

      首先,在主数据库中输入

      

      然后,在从数据库的客户端,我们进行查询操作

      

      可以看到,在从数据库中获取的name属性的值。

      注:除了通过配置文件或命令行设置slaveof参数,还可以在运行时使用slaveof命令修改:

      

      如果该数据库已经是其他主数据库的从数据库了,slaveof命令会停止和原来的数据库的同步转而和新的数据库进行同步。

    二、复制原理

      当一个数据库启动后,会向主数据库发送SYNC命令,主数据库收到SYNC命令后开始在后台保存快照,并将保存期间收到的命令缓存起来。当快照完成后,Redis会将快照文件和所有的缓存的命令发送给从数据库,从数据库接收到后,会载入快照文件并执行收到的缓存的命令。当主从数据库断开重连后会重新执行上述操作。

    三、从数据库持久化

      为了提高性能,可以通过复制功能简历若干个从数据库,并在从数据库中启用持久化,同时在主数据中禁用持久化。当从数据库崩溃时重启后主数据会自动将数据同步过来,所以无需担心数据丢失。而当主数据库崩溃时,需要在从数据库中使用slaveof no one 命令将从数据库提升为主数据继续服务,并将原来的主数据库启动后使用slaveof命令将其设置为新的主数据库的从数据库,即可将新的数据同步过来。

    四、参考资料

      1、Redis入门指南(李子骅)

  • 相关阅读:
    如何保证 Redis 缓存与数据库双写一致性?
    如何合理地估算线程池大小?
    不用装工具,一条 Linux 命令就能实现文件上传下载!
    看了 Google 大神 Jeff Dean 的传说,我拜服了~
    div设置水平垂直居中
    "起用"与"启用"
    徇私舞弊
    精选排比金句20例
    一笔画图推
    一笔画
  • 原文地址:https://www.cnblogs.com/xujian2014/p/5768400.html
Copyright © 2020-2023  润新知