Redis Sentinel主从集群

  1. 环境、准备
  2. slave配置
  3. sentinel配置
  4. 测试
  5. C#连接Redis Sentinel

1、环境、准备

单实例3台CentOS7服务器,IP地址、:

192.168.31.167  #M1 S1
192.168.31.168 #R2 S2
192.168.31.169 #R3 S3
#部署结构示意
+----+
| M1 |
| S1 |
+----+
|
+----+ | +----+
| R2 |----+----| R3 |
| S2 | | S3 |
+----+ +----+ Configuration: quorum = 2

2、slave配置

将168、169机器两个实例/usr/local/redis/etc/6379.conf文件配置为167的从。

slaveof 192.168.31.167 6379

配置后重启3台服务器上的Redis。

3、sentinel配置

将/usr/local/src/redis/sentinel.conf复制到/usr/local/redis/etc/sentinel.conf修改如下配置:

protected-mode no
daemonize yes
logfile "/usr/local/redis/logs/sentinel.log"
sentinel monitor mymaster 192.168.31.167 6379 2
sentinel down-after-milliseconds mymaster 3000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000

配置完后启动3台服务器上的redis-sentinel

redis-sentinel /usr/local/redis/etc/sentinel.conf

在167查看主从信息,从也可通过info方式查看。

redis-cli -h 192.168.31.167
192.168.31.167:6379> info # Replication
role:master
connected_slaves:2
slave0:ip=192.168.31.168,port=6379,state=online,offset=6381,lag=0
slave1:ip=192.168.31.169,port=6379,state=online,offset=6524,lag=0
master_repl_offset:6524
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:6523

测试

在167 Master写入。

192.168.31.167:6379> set name ddrsql
OK
192.168.31.167:6379> keys *
1) "name"
192.168.31.167:6379> get name
"ddrsql"

在168 Slave中查看结果如下,169 Slave和168一样。

192.168.31.168:6379> keys *
1) "name"
192.168.31.168:6379> get name
"ddrsql"

将167 Master停止,也可直接将167关机。

192.168.31.167:6379> shutdown
not connected>

在168、169中查看,168提升为主。

192.168.31.168:6379> info replication

# Replication
role:master
connected_slaves:1
slave0:ip=192.168.31.169,port=6379,state=online,offset=503694,lag=0
master_repl_offset:503837
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:503836 192.168.31.169:6379> info replication # Replication
role:slave
master_host:192.168.31.168
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:520680
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

C#连接Redis Sentinel

使用StackExchange.Redis

参考:

https://github.com/StackExchange/StackExchange.Redis/blob/master/StackExchange.Redis.Tests/Sentinel.cs

private const string IP = "192.168.31.167";
private const int Port = 26379;
private const string ServiceName = "mymaster"; private static readonly ConnectionMultiplexer Conn = GetConn();
//实际使用需要telnet验证通过的IP:Port地址来GetServer
private static readonly IServer Server = Conn.GetServer(IP, Port); public static ConnectionMultiplexer GetConn()
{
// create a connection
var options = new ConfigurationOptions()
{
CommandMap = CommandMap.Sentinel,
EndPoints = { { IP, Port } },
AllowAdmin = true,
TieBreaker = "",
ServiceName = ServiceName,
SyncTimeout = 5000
};
//配置了多个哨兵
options.EndPoints.Add("192.168.31.169", Port);
options.EndPoints.Add("192.168.31.169", Port);
var connection = ConnectionMultiplexer.Connect(options, Console.Out);
Thread.Sleep(3000);
Assert.IsTrue(connection.IsConnected);
return connection;
}

CentOS7 配置 Redis Sentinel主从集群配置的更多相关文章

  1. redis:哨兵集群配置

    最少配置1主2从3哨兵 一.引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...

  2. java:redis(redis安装配置,redis的伪集群配置)

    1.redis安装配置: .安装gcc : yum install gcc-c++ .使用FTP工具FileZilla上传redis安装包到linux根目录下(当前步骤可以替换为:在root目录下执行 ...

  3. redis学习五 集群配置

    redis集群配置 0,整体概述      整体来说就是:      1,安装redis      2,配置多个redis实例      3,安装 ruby和rubygems      4,启动red ...

  4. Redis单机和集群配置(版本在5.0后)

    摘抄并用于自己后查 单机版的配置: 1. 下载redis压缩包,然后解压缩文件(tar xzf): 2. 进入解压后的redis文件目录,编译redis源文件(make,没有c环境要gcc): 3. ...

  5. 基于redis的cas集群配置(转)

    1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...

  6. 基于redis的cas集群配置

    1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...

  7. Redis Sentinel哨兵集群

    Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...

  8. Redis Sentinel分布式集群

    helm部署Redis哨兵分布式集群 Redis Sentinel集群 介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客 ...

  9. redis 负载均衡 集群配置

    redis 官网 http://redis.io/ 中文网站 http://redis.cn/ 谷歌代码的redis项目 https://code.google.com/p/redis/ http:/ ...

随机推荐

  1. Mysql & Hive 导入导出数据

    ---王燕行转列sql select split(concat_ws(',',collect_set(cast(smzq as string))),',')[1] ,split(concat_ws(' ...

  2. 可视化 linux 无法启动eclipse 报错No java virtual machine

    点击eclipse的时候会产生这个 解决方案: (1)找到eclipse的安装目录(我这个是远程连接) 注意: 点击这里可以进入命令行编辑模式 点开后 (2)给文件授权(默认是只读的) (3)对文件进 ...

  3. DIV+CSS实战(五)

    一.说明 前面实现了关键词订阅模块,现在实现站点订阅模块,主要实现的是站点添加界面.站点添加界面里面实现一个提示框不在提示的功能(保存到cookie中),还有就是实现一个站点的选择框,包括输入文字自动 ...

  4. Python初学者的捷径[译]

    下面列出的都是这些年总结的Python的有用的知识点和一些工具.希望对你有所帮助! 交换变量值 x = 6 y = 5 x, y = y, x print x >>> 5 print ...

  5. MVC 图片上传(转)

    转自:http://www.cnblogs.com/Tiramisu/archive/2009/02/06/1385405.html MVC 上传图片   直接上代码: 页面:Index.aspx C ...

  6. 20145209 2016-2017-2 《Java程序设计》第6周学习总结

    20145209 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 4.1 Y86指令集体系结构 •有8个程序寄存器:%eax.%ecx.%edx.%ebx.% ...

  7. hdu1171 Big Event in HDU(01背包) 2016-05-28 16:32 75人阅读 评论(0) 收藏

    Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  8. Android App 退出整个应用

    在做Android APP 过程中,有退出整个Project的功能,以下就是接受退出整个应用的操作: ActivityManager是用来管理记录每一个Activity,最后统一用来退出结束: pub ...

  9. Java-网络编程之-Internet地址

    在网络编程中,比较重要的部分,就是关于Internet地址的知识理解 连接到Internet的设备我们成为节点(node),而计算机节点我们称为主机(host),要记住每个node或者host,至少一 ...

  10. go 编译问题

    golang的编译使用命令 go build , go install;除非仅写一个main函数,否则还是准备好目录结构:GOPATH=工程根目录:其下应创建src,pkg,bin目录,bin目录中用 ...