zoukankan      html  css  js  c++  java
  • redis主从配置 从而实现数据备份和读写分离

    首先打开cmd,用cd找到你的redis文件夹,我的操作是

    在你的第一个redis客户端文件夹配置文件中,搜索port,找到如下位置

    端口号设置为6379(默认的。后面一个,两个或者多个客户端分别修改为你想使用的端口号,我这里使用6380,6381)

    这样一来,6379的rendi客户端已经启动。后面的客户端只需要你修改配置文件中的端口号后,以同样的方式打开redis。

    下面打开你每个redis所对应的客户端操作控制台,开启新cmd,切换到你需要的盘符下面,方式如下。

    这样一来 redis客户端操作控制台已经启动,我们可以正常操作set get flushdb save等。

    当然其他两个端口端口的redis操作控制台也这样启动,不过把你的端口号修改为你所对应的。

    下面我将对6379作为master主节点,6380,6381为slave从节点。

    那么测试操作过程如下:

    首先flushall,确保清空缓存,接下来set三条数据并使用keys *命令来查看当前所有key val

    下面,我们来手动让6380端口的redis来作为6379的从节点,操作如下:

    使用slaveof命令来达到目的。当然在这样的命令下,redis挂掉后,他们的主从关系就不存在了,稍后会讲到如何永久确定主从关系。

    我们还是先来测试一下数据是否同步过来了。

    依然使用keys *命令,我们可以看到结果。主从同步数据成功。那么6381端口同步也是一样的。

    现在我在master 6379添加数据后来查看从节点的内容。

    从节点中再次使用keys *命令查看:

    可以看到6380已同步master节点的数据。

    下面我们在尝试一项操作:

    我试图在从节点中set值,提示从服务器是只读的。不过我们可以在从节点中操作save,这也算是一种redis数据备份吧。

    既然这样了,我们的主从复制已经配置结束。实现读写分离的原理也正是如此,在多个从服务器中读取数据,在master中操纵数据。

    不过我认为这在普通场景中根本用不到,除非写量相对少,而读取量特别的,我们才选择读写分离。

    还有最后要说设置永久主从关系的方法就是,你在从节点的配置文件中,搜索slaveof关键字找到:

    做如上配置,每当你重启redis服务,自动同步所有数据。

  • 相关阅读:
    合并两个排序的链表
    C#中调用C++的DLL文件
    C#获取进程的主窗口句柄
    在VS2008中编译纯c/c++程序并由c#调用过程 及 C++引用c#dll 模拟登陆实现
    C#多屏幕显示器编程
    Windows系统下的多显示器模式开发日记
    在 C# 中调用 C++
    C# 中调用C++ DLL (P/Invoke)
    C#多屏时控制窗体显示在哪个显示器上
    c# Winform 开发分屏显示应用程序
  • 原文地址:https://www.cnblogs.com/foxy/p/8583402.html
Copyright © 2011-2022 走看看