zoukankan      html  css  js  c++  java
  • Redis四大模式之主从配置

    Redis工作模式主要有单机模式、主从模式(slave)、哨兵模式(sentinel)、集群模式(cluster)这四种,本文主要讲解一下主从模式的部署方式。

      我是windows单机进行的这套搭建操作,linux系统下搭建也是同样的,要点都是对配置文件进行一些更改。redis大家可以直接去官网https://redis.io/download下载,linux也可根据页面上的指示输入相应的指令下载。

      首先准备master的配置文件(redis.windows-service.conf),主要有port(端口号,默认是6379)、requirepass(密码)、dbfilename(数据持久化文件)、logfile(日志文件),这里我就不更改端口号和不设置密码了,所以直接使用默认的配置就可以,master-slave模式下,作为master的redis是不需要额外配置的。接下来进去redis目录,执行redis-server.exe redis.windows-service.conf即可,然后到windows服务列表(cmd窗体输入services.msc回车进入)中开启redis服务即可。回到redis目录,双击redis-cli.exe,出现以下界面则成功连接上了端口号为6379的redis服务。

      接下来配置第一台slave的redis。新建redis-6380目录,并复制配置文件redis.windows-service.conf和redis-server.exe 到redis-6380目录下。打开redis.windows-service.conf进行编辑,更改端口号为6380,slave规则添加一条slaveof 127.0.0.1 6379。完整的配置如下:

    port 6380

    dbfilename dump.rdb

    logfile "server_log.txt"

    slaveof 127.0.0.1 6379

    cluster-enabled no

    其中cluster-enabled no配置默认是 #cluster-enabled yes,可以不用更改,如果去掉屏蔽就必须更改为no,因为redis的cluster模式和slave模式是互斥的。slaveof 127.0.0.1 6379这里的值就是maste模式redia的ip和端口号,如果master设置了密码,则还需要添加“masterauth masterpassword”一项配置。然后命令行窗体进入redis-6380目录,执行redis-server.exe redis.windows-service.conf --service-name Redis6380,转到windows服务列表启动名为redis6380的服务就可以了,到现在作为slave模式运行的redis服务就正常运行了。

      打开redis-6380目录下的server_log_6380.txt文件可以看到以下界面,注意红色框部分,表示当前slave节点已经成功从master节点同步数据了:

      至此,一个master-slave模式的redis系统就部署完成,并且成功运行了。接下来我们测试一下在master节点写入的数据,能否正常同步到slave节点里面;

      在刚才的redis-cli.exe界面输入 set test-slave 'test slave of port 6380',成功执行如下:

    回到slave节点的客户端连接,我用的是命令行窗体,进入redis-6380目录,执行redis-cli.exe -h 127.0.0.1 -p 6380命令,回车,然后输入 get test-slave,得到如下界面的结果:

    这就是刚才在master几点存入的test-slave键值的数据,由此运行在6380端口的slave模式redis已经能成功同步到6379端口的master模式下的数据了。

    接下来,在master的redis客户端输入INFO replication,查看部署的集群信息,这里我部署了两台slave,端口号为6381的那台我就没有描述了,部署方式和6380那台一样:

      redis主从模式下,master模式的redis是不需要额外配置的,和单机模式下的配置一样,只需要更改slave模式的配置,添加slaveof masterip masterport,如果开启了cluster模式,必须要关闭,同时,如果master设置了访问密码,则slave需要配置masterauth masterpassword 一项。另外slave模式下的redis只支持读取模式,不支持写入,修改配置项 slave-read-only no即可,但是没有必要。即使在slave机器写入了数据,也不会被同步到其余redis上,如果master写入了相同键值的数据也会把slave中的数据覆盖,所以完全没有必要配置slave模式的redis为可写模式。

  • 相关阅读:
    Java继承关系的父子类中相同的成员变量
    MVC写在Model文件夹下,登录注册等页面定义的变量规则,不会被更新实体模型删除
    手动新建MVC控制器和视图,以及数据显示的问题
    创建简单的MVC项目
    复习i++和++j
    ViewBag的简单使用
    ValidationMessageFor验证
    Cookie的简单使用
    MVC3中 ViewBag、ViewData和TempData的使用和区别
    C#的GridView控件复习
  • 原文地址:https://www.cnblogs.com/csl0910/p/13255881.html
Copyright © 2011-2022 走看看