第一篇那redis的基础命令都差不多讲了一遍了,这篇就将怎么配置集群了,最后要达到的效果是一台主redis,还有几台从的redis,每次数据都是同步的,当主redis挂掉了,那么就会从几台从redis挑选出一台作为主的redis,如果之后刚开始的主redis启动以后,又会变为刚开始的状态,

  因为要做集群,所以我复制了三分redis,一个是master,两个是slave,端口分别是6379,6480,6381,我们还需要另外一个工具,就是管理这些集群,并且检测的sentinel,其实这个在2.4以后就已经集成到了redis。

  1.配置主从redis。配置主从其实很简单,我们只要在配置文件redis.windows.conf中配置一个:

slaveof 127.0.0.1 6379//# slaveof <masterip> <masterport>

很明显 前面是IP,后面是端口.然后我们把三个redis都启动:
master:

[]  Dec ::08.053 * The server is now ready to accept connections on po
rt
[] Dec ::43.249 * Slave 127.0.0.1: asks for synchronization

slave-1:

[]  Dec ::57.225 * The server is now ready to accept connections on po
rt
[] Dec ::58.219 * Connecting to MASTER 127.0.0.1:

slave-2:

[]  Dec ::13.550 * The server is now ready to accept connections on po
rt
[] Dec ::14.549 * Connecting to MASTER 127.0.0.1:

从日志就可以看出来,主从已经配置好了,接下来就是sentinel的配置:

##sentinel实例之间的通讯端口
port
####sentinel需要监控的master信息:<mastername> <masterIP> <masterPort> <quorum>.
####<quorum>应该小于集群中slave的个数,只有当至少<quorum>个sentinel实例提交"master失效" 才会认为master为ODWON("客观"失效) .
sentinel monitor mymaster 139.129.7.140 1
####授权密码,在安全的环境中可以不设置
sentinel auth-pass mymaster luyx30
####master被当前sentinel实例认定为“失效”(SDOWN)的间隔时间
sentinel down-after-milliseconds mymaster
####当新master产生时,同时进行“slaveof”到新master并进行同步复制的slave个数。
##在salve执行salveof与同步时,将会终止客户端请求。
##此值较大,意味着“集群”终止客户端请求的时间总和和较大。
##此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。
sentinel parallel-syncs mymaster
####failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failoer失败。
sentinel failover-timeout mymaster

启动sentinel:

[]  Dec ::03.411 # +monitor master mymaster 127.0.0.1  quorum
[] Dec ::04.412 * +slave slave 127.0.0.1: 127.0.0.1 @ mymast
er 127.0.0.1
[] Dec ::04.414 * +slave slave 127.0.0.1: 127.0.0.1 @ mymast
er 127.0.0.1

现在简单的集群已经配好啦,那么我们来试试效果怎么样,首先我在master上

127.0.0.1:> set name hotusm
OK
127.0.0.1:> get name
"hotusm"

然后在slave-1上:

127.0.0.1:> get name
"hotusm"
127.0.0.1:>

主从没问题,下面我们模拟故障,将master关闭,这是sentinel的日志:

[]  Dec ::21.377 # +switch-master mymaster 127.0.0.1  127.0.0.1 

[]  Dec ::21.380 * +slave slave 127.0.0.1: 127.0.0.1  @ mymast
er 127.0.0.1

这样,简单的搭建成功啦

Redis配置集群二(window)的更多相关文章

  1. Redis配置集群一(window)

    因为接下来的项目要使用到redis作为我们项目的缓存,所以就花了一天时间研究了一下redis的一些用法,因为没转linux虚拟机,所以就决定先研究一下windows版本的redis集群.主要是redi ...

  2. redis之集群二:哨兵

    回顾 上一篇介绍了Redis的主从集群模式,这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改.但是,我们发现这种集群模式当主节点宕机,主从无法自动切 ...

  3. redis —主从&&集群(CLUSTER)

    REDIS主从配置 为了节省资源,本实验在一台机器进行.即,在一台机器上启动两个端口,模拟两台机器. 机器准备: [root@adailinux ~]# cp /etc/redis.conf /etc ...

  4. python 连接 redis cluster 集群

    一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...

  5. Redis Cluster集群搭建与配置

    Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...

  6. redis介绍 (8) window 下redis的集群(cluster命令)

    前言: 前段时间我在centos上搭建过一次redis集群,那是借助ruby搭建,这次我介绍一种纯redis集群命令的方式去搭建[最后我会简单介绍ruby搭建]. redis集群搭建(三主三备): 准 ...

  7. Redis 集群二

    [Redis 集群二] 集群的客户端 Redis 集群现阶段的一个问题是客户端实现很少. 以下是一些我知道的实现: redis-rb-cluster 是我(@antirez)编写的 Ruby 实现, ...

  8. Centos6 安装 Redis 和集群配置

    Redis安装 先确认gcc和tcl已经安装 sudo yum install gcc-c++ sudo yum install tcl 解压, 编译和安装 .tar.gz /usr/src/ cd ...

  9. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

随机推荐

  1. NodeJS系列~第二个小例子,解决中文乱码的问题

    返回目录 为了使页面支持的字符更多,所以编码使用UTF-8,注意,你的原js文件的编码也要是utf-8的,可以通过记事本进行编码的修改

  2. 04- Shell脚本学习--条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...

  3. 解析for循环

    循环的作用就是让一个程序.连续进行一遍又一遍的循环: for循环: 分为四大类: 初始状态:相当于他一开始的数值,或条件: 循环条件:满足进行循环,不满足则停止: 循环体:循环的东西,程序: 状态改变 ...

  4. [数据库连接池] Java数据库连接池--DBCP浅析.

    前言对于数据库连接池, 想必大家都已经不再陌生, 这里仅仅设计Java中的两个常用数据库连接池: DBCP和C3P0(后续会更新). 一. 为何要使用数据库连接池假设网站一天有很大的访问量,数据库服务 ...

  5. Lock VS Monitor

    Lock Monitor   多线程操作的时候,为防止死锁,我们经常采用加Lock的方式解决,下面就谈一下Lock的具体运用和Lock可以用什么来替换 首先,看代码: private static o ...

  6. Oracle SQL 优化原则(实用篇)

    由于SQL优化优化起来比较复杂,并且还受环境限制,在开发过程中,写SQL必须遵循以下几点原则: 1.Oracle 采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他Where ...

  7. JSON学习之二

    1.JSON语法是JavaScript对象表示法的子集,语法规则: **数据在名称/值对中 **数据由逗号分隔 **花括号保存对象 **方括号保存数组 2.JSON名称/值对:JSON数据的书写格式是 ...

  8. 深入理解CSS定位中的堆叠z-index

    × 目录 [1]定义 [2]堆叠规则 [3]堆叠上下文[4]兼容 前面的话 对于所有定位,最后都不免遇到两个元素试图放在同一位置上的情况.显然,其中一个必须盖住另一个.但,如何控制哪个元素放在上层,这 ...

  9. pomelo获取客户端IP

    代码: Handler.prototype.getClientIp = function(msg, session, next) { var ip = session.__session__.__so ...

  10. 关于js中for in和foreach in的区别

    js 中for in 和foreach in的区别 两个的作用都用来遍历对象,但为什么有了for in语句了还要foreach in语句呢,后来看了下foreach in开发的文档,foreach i ...