CentOS7 配置 Redis Sentinel主从集群配置
Redis Sentinel主从集群
- 环境、准备
- slave配置
- sentinel配置
- 测试
- 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主从集群配置的更多相关文章
- redis:哨兵集群配置
最少配置1主2从3哨兵 一.引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...
- java:redis(redis安装配置,redis的伪集群配置)
1.redis安装配置: .安装gcc : yum install gcc-c++ .使用FTP工具FileZilla上传redis安装包到linux根目录下(当前步骤可以替换为:在root目录下执行 ...
- redis学习五 集群配置
redis集群配置 0,整体概述 整体来说就是: 1,安装redis 2,配置多个redis实例 3,安装 ruby和rubygems 4,启动red ...
- Redis单机和集群配置(版本在5.0后)
摘抄并用于自己后查 单机版的配置: 1. 下载redis压缩包,然后解压缩文件(tar xzf): 2. 进入解压后的redis文件目录,编译redis源文件(make,没有c环境要gcc): 3. ...
- 基于redis的cas集群配置(转)
1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...
- 基于redis的cas集群配置
1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...
- Redis Sentinel哨兵集群
Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...
- Redis Sentinel分布式集群
helm部署Redis哨兵分布式集群 Redis Sentinel集群 介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客 ...
- redis 负载均衡 集群配置
redis 官网 http://redis.io/ 中文网站 http://redis.cn/ 谷歌代码的redis项目 https://code.google.com/p/redis/ http:/ ...
随机推荐
- Linux将程序添加到服务的方法(通用)
一:咱们通过这篇文章来演示怎么将某个程序作为服务(就类似Windows服务可以开机自动启动),这里以tomcat为例,已经亲测过: 二:步骤(最好用root用户来做这种事情,切换root用户记得su ...
- SpringMVC零碎笔记
在web.xml里可以配置webapp的默认首页,格式如下: <welcome-file-list> <welcome-file>index.html</welcome- ...
- web.xml 404 500 配置
web.xml <error-page> <error-code>404</error-code> <location>/error404.html&l ...
- Airplace平台
Demo: 左上角:(0, 0)开始导航,手机终端上实时在地图上当前所在显示,当前点以绿色点显示,轨迹点以红色显示. 系统架构:基于移动手机的以网络为辅助的架构.特点:低头顶交流,用户隐私和安全 &g ...
- (线段树 点更新 区间求和)lightoj1112
链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#problem/D (密码0817) Description Robin ...
- (最小生成树 次小生成树)The Unique MST -- POJ -- 1679
链接: http://poj.org/problem?id=1679 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82831#probl ...
- PHP Functions - arsort()
<?php $characters = array('a','b','c','d','e','f'); arsort($characters); print_r($characters); /* ...
- 设计模式之状态模式(State Pattern)
一.什么是状态模式? 把所有动作都封装在状态对象中,状态持有者将行为委托给当前状态对象 也就是说,状态持有者(比如汽车,电视,ATM机都有多个状态)并不知道动作细节,状态持有者只关心自己当前所处的状态 ...
- Swagger中显示注释
Webapi中Swagger中不显示注解的解决方法 1.找见生成项目时候生成的xml文件.查看存放路劲方法: 右键项目-->点击属性-->在属性中选择“生成”就能看见xml文件存放路径: ...
- [ASP.NET]Net Framework环境问题的一种修复方案
一.情况介绍 造价软件基于.net framework 4.0开发,要成功运行需要在目标电脑上安装4.0版本以上的framework.一般情况下xp是没有的,win7系列自带3.5,都需要手动安装4. ...