Redis3.0--集群安装部署

准备环境

操作系统:CentOS6.5

Redis3.0.0

192.168.3.154

192.168.3.158

192.168.3.160

192.168.3.162

一、安装

安装目录 /usr/local/redis

创建安装目录

mkdir -p /usr/local/redis

解压安装包

[[email protected] src]# tar -zxvf redis-3.0.0.tar.gz

进入目录

[[email protected] src]# cd redis-3.0.0

编译安装到指定目录

make PREFIX=/usr/local/redis install

安装成功后会在/usr/local/redis/bin目录下生成一下文件

redis-benchmark

redis-check-aof

redis-check-dump

redis-cli

redis-sentinel -> redis-server

redis-server

二、配置主从

从库配置文件中加上

slaveof masterip port

依次启动主库、从库

如果从库报错

35478:S 28 May 21:01:18.648 # Error condition on socket for SYNC: No route to host

是由于防火墙没有关闭

解决方案:开通6379端口,或者关闭防火墙

三、增加密码验证

主库配置文件增加参数

requirepass "password"

增加密码验证后再次登录redis客户端执行命令需要加上密码

如:

[[email protected] ~]# /usr/local/redis/bin/redis-cli -p 6382 -a sldUancjdPyu info

主库添加密码验证后,从库需要配置如下参数:

requirepass "password"

masterauth "password"

注意:从库需要配置本身的密码验证,还需要配置连接到主库的密码验证masterauth

四、redis 高可用集群

3.0版本已经将哨兵集成到redis安装包里,安装好redis之后可以看到该文件 redis-sentinel

配置sentinel

[[email protected] redis]# more sentinel.conf

# Example sentinel.conf

port 26379

daemonize yes

dir "/data/redis"

logfile "/data/redis/sentinel.log"

sentinel monitor mymaster 192.168.3.154 6379 2  #sentinel监控的master的名字叫做mymaster,地址为192.168.3.154:端口:6379;当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了

sentinel down-after-milliseconds mymaster 5000  #sentinel会向master发送心跳PING来确认master是否存活,当master 5秒内不回应pong或者回复一个错误消息时,该sentinel主管地认为这个master不可用,标记这个redis的实例为SDOWN 。注意:此时sentinel并不会马上进行failover主备切换

sentinel failover-timeout mymaster 90000  #故障切换超时时间,单位:毫秒,默认3分钟.

#启动sentinel

方法1:/usr/local/redis/bin/redis-sentinel /data/redis/sentinel.conf

方法2:/usr/local/redis/bin/redis-server /data/redis/sentinel.conf --sentinel

#查看sentinel日志

[[email protected] redis]# more sentinel.log

26542:X 28 May 21:08:34.757 * Increased maximum number of open files to 10032 (it was originally set to 1024).

_._

_.-``__ ‘‘-._

_.-``    `.  `_.  ‘‘-._           Redis 3.0.0 (00000000/0) 64 bit

.-`` .-```.  ```\/    _.,_ ‘‘-._

(    ‘      ,       .-`  | `,    )     Running in sentinel mode

|`-._`-...-` __...-.``-._|‘` _.-‘|     Port: 26379

|    `-._   `._    /     _.-‘    |     PID: 26542

`-._    `-._  `-./  _.-‘    _.-‘

|`-._`-._    `-.__.-‘    _.-‘_.-‘|

|    `-._`-._        _.-‘_.-‘    |           http://redis.io

`-._    `-._`-.__.-‘_.-‘    _.-‘

|`-._`-._    `-.__.-‘    _.-‘_.-‘|

|    `-._`-._        _.-‘_.-‘    |

`-._    `-._`-.__.-‘_.-‘    _.-‘

`-._    `-.__.-‘    _.-‘

`-._        _.-‘

`-.__.-‘

26542:X 28 May 21:08:34.760 # Sentinel runid is 18176251f94fe87bf0055e2a6b47823911c2d6ea

26542:X 28 May 21:08:34.760 # +monitor master mymaster 192.168.3.154 6379 quorum 1

26542:X 28 May 21:08:35.766 * +slave slave 192.168.3.158:6379 192.168.3.158 6379 @ mymaster 192.168.3.154 6379

26542:X 28 May 21:08:40.809 # +sdown slave 192.168.3.158:6379 192.168.3.158 6379 @ mymaster 192.168.3.154 6379

说明:主从库已经加入监控

#阅读sentinel日志

+reset-master <instance details> :主服务器已被重置。

+slave <instance details> :一个新的从服务器已经被 Sentinel 识别并关联。

+failover-state-reconf-slaves <instance details> :故障转移状态切换到了 reconf-slaves 状态。

+failover-detected <instance details> :另一个 Sentinel 开始了一次故障转移操作,或者一个从服务器转换成了主服务器。

+slave-reconf-sent <instance details> :领头(leader)的 Sentinel 向实例发送了 SLAVEOF 命令,为实例设置新的主服务器。

+slave-reconf-inprog <instance details> :实例正在将自己设置为指定主服务器的从服务器,但相应的同步过程仍未完成。

+slave-reconf-done <instance details> :从服务器已经成功完成对新主服务器的同步。

-dup-sentinel <instance details> :对给定主服务器进行监视的一个或多个 Sentinel 已经因为重复出现而被移除 —— 当 Sentinel 实例重启的时候,就会出现这种情况。

+sentinel <instance details> :一个监视给定主服务器的新 Sentinel 已经被识别并添加。

+sdown <instance details> :给定的实例现在处于主观下线状态。

-sdown <instance details> :给定的实例已经不再处于主观下线状态。

+odown <instance details> :给定的实例现在处于客观下线状态。

-odown <instance details> :给定的实例已经不再处于客观下线状态。

+new-epoch <instance details> :当前的纪元(epoch)已经被更新。

+try-failover <instance details> :一个新的故障迁移操作正在执行中,等待被大多数 Sentinel 选中(waiting to be elected by the majority)。

+elected-leader <instance details> :赢得指定纪元的选举,可以进行故障迁移操作了。

+failover-state-select-slave <instance details> :故障转移操作现在处于 select-slave 状态 —— Sentinel 正在寻找可以升级为主服务器的从服务器。

no-good-slave <instance details> :Sentinel 操作未能找到适合进行升级的从服务器。Sentinel 会在一段时间之后再次尝试寻找合适的从服务器来进行升级,又或者直接放弃执行故障转移操作。

selected-slave <instance details> :Sentinel 顺利找到适合进行升级的从服务器。

failover-state-send-slaveof-noone <instance details> :Sentinel 正在将指定的从服务器升级为主服务器,等待升级功能完成。

failover-end-for-timeout <instance details> :故障转移因为超时而中止,不过最终所有从服务器都会开始复制新的主服务器(slaves will eventually be configured to replicate with the new master anyway)。

failover-end <instance details> :故障转移操作顺利完成。所有从服务器都开始复制新的主服务器了。

+switch-master <master name> <oldip> <oldport> <newip> <newport> :配置变更,主服务器的 IP 和地址已经改变。 这是绝大多数外部用户都关心的信息。

+tilt :进入 tilt 模式。

-tilt :退出 tilt 模式。

#故障转移

一次故障转移操作由以下步骤组成:

发现主服务器已经进入客观下线状态。

对我们的当前纪元进行自增, 并尝试在这个纪元中当选。

如果当选失败, 那么在设定的故障迁移超时时间的两倍之后, 重新尝试当选。 如果当选成功, 那么执行以下步骤。

选出一个从服务器,并将它升级为主服务器。

向被选中的从服务器发送 SLAVEOF NO ONE 命令,让它转变为主服务器。

通过发布与订阅功能, 将更新后的配置传播给所有其他 Sentinel , 其他 Sentinel 对它们自己的配置进行更新。

向已下线主服务器的从服务器发送 SLAVEOF 命令, 让它们去复制新的主服务器。

当所有从服务器都已经开始复制新的主服务器时, 领头 Sentinel 终止这次故障迁移操作。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-27 00:26:08

Redis3.0--集群安装部署的相关文章

redis3.0集群安装部署

wget http://download.redis.io/releases/redis-3.0.0.tar.gz && tar zxvf redis-3.0.0.tar.gz && cd redis-3.0.0 && make PREFIX=/usr/local/redis install mkdir -p /usr/local/redis/run mkdir -p /usr/local/redis/logs mkdir -p /usr/local/red

Redis3.0集群方案分析

在Redis3.0集群出来之前,大家都对作者antirez寄予厚望,因为Redis从来没有让我们失望过.现在Redis3.0集群出来了,网上出了很多评论文章,都说他的功能多么强大,包括下面这张图是彻底把我欺骗了. 等到我把Redis3.0客户端库hiredis编译好集成到公司系统,访问其中一台Redis3.0服务器居然返回"MOVED 2318 10.12.8.156:6379",这才了解到访问其他Redis3.0服务器的Key需要二次定位,这就是Redis3.0所谓的ASK 转向/M

redis3.0集群部署和测试

redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141redis版本:redis-3.2.4 部署前准备 关闭防火墙--->systemctl stop firewalld开机禁用防火墙--->systemctl disable firewalld临时关闭selinux--->setenforce 0永久关闭selinux--->sed -

redis3.0集群部署方案

redis3.0集群部署方案redis1:192.168.1.10:6379       192.168.1.10:6380redis2:192.168.1.11:6379       192.168.1.11:6380redis3:192.168.1.12:6379       192.168.1.12:6380关闭 selinux ,防火墙允许6379 6380端口通过, 先启动各服务器的redis节点在制作集群       redis1配置:yum -y insall gcc ruby r

redis3.0集群说明与搭建

Redis3.0集群说明: 1.  Redis集群提供一种运行Redis的方式,数据被自动的分片到多个Redis节点. 2. 集群不支持处理多个键的命令,因为这需要在Redis节点间移动数据,使得                 Redis集群不能提供像Redis单点那样的性能,在高负载下会表现得不可预知. 3.  集群可在多个节点间自动拆分数据集. 当部分节点正在经历失败或者不能与集群其他节点通信时可继续运转 4 Redis集群不保证数据强一致性. redis-server 集群以哈希槽的方式

Mysql上的RAC:Percona XtraDB Cluster负载均衡集群安装部署手册

 Percona XtraDB Cluster安装部署手册 引言 编写目的 编写此文档,供PerconaXtraDB Cluster部署时使用. 预期读者 系统维护人员及实施人员. 编制依据及参考资料 目标 通过阅读该手册,让读者明确PerconaXtraDB Cluster的安装.配置和维护情况,为后续数据库运维工作提供指导. 应用部署方案 环境准备 服务器列表 序号 IP 用途 HOSTNAME 操作系统 1 192.168.0.7 Percona XtraDB Cluster RedHat

mesos 集群安装部署规划、准备(1)

一:简介 Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache Incubator中的项目.Mesos计算框架一个集群管理器,提供了有效的.跨分布式应用或框架的资源隔离和共享,可以运行Hadoop.MPI.Hypertable.Spark.使用ZooKeeper实现容错复制,使用Linux Containers来隔离任务,支持多种资源计划分配. 1: 总体架构 Apache Mesos由四个组件组成,分别是Mesos-master,mesos-slave,framework

mesos 集群安装部署zookeeper(2)

三:集群安装配置 ############################################################## 配置zookeeper集群    (172.16.7.12~13 执行) ############################################################### 1:部署环境介绍: 服务器IP地址主机名安装服务 172.16.7.12ctn-7-12.ptmind.com zookeeper   myid=1 17

mesos 集群安装部署mesos-master(3)

############################################################### Mesos 集群master配置 ############################################################### 1:部署环境介绍: 服务器IP地址主机名安装服务 172.16.7.11ctn-7-11.ptmind.com mesos-master 172.16.7.12ctn-7-12.ptmind.com mesos

mesos 集群安装部署marathon(4)

############################################################### 配置 marathon 服务 ############################################################### Marathon:marathon是一个mesos框架,能够支持运行长服务,比如web应用等.是集群的分布式Init.d,能够原样运行任何Linux二进制发布版本,如Tomcat Play等等,可以集群的多进程管理