实验:多实例节点 10.220.5.65(三个实例)

高可用节点:10.220.5.67

创建目录,将三个实例文件都放在这个目录中

[root@ ~]# yum install redis -y
[root@~]# mkdir /redis/{,,} -pv

查看目录

[root@ ~]# ls /redis
6381 <<<三个实例所对应的端口号,为了方便理解这里每个文件名和对应的端口号一致

将/etc/redis.conf文件复制到每一个目录下

[root@65DRslave ]# cp /etc/redis.conf /redis/
[root@65DRslave ]# cp /etc/redis.conf /redis/
[root@65DRslave ]# cp /etc/redis.conf /redis/

修改每一个配置文件

[root@65DRslave ]# cp /etc/redis.conf /redis/
  protected-mode yes
port
daemonize yes <<<启用后台运行模式
pidfile /redis//redis_6379.pid
logfile /redis//redis.log <<<日志文件
# save "" save
save
save
dir /redis/

同理剩下两个配置文件和上边类似,只需该对应端口即可

启动实例

[root@ ~]# redis-server /redis//redis.conf
[root@ ~]# redis-server /redis//redis.conf
[root@~]# redis-server /redis//redis.conf
[root@65DRslave ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN 10.220.5.65: *:*
LISTEN 10.220.5.65: *:*

打开多个终端,分别登陆实例

[root@ ~]# redis-cli -h 10.220.5.65 -p 6379
10.220.5.65:6379> 
[root@ ~]# redis-cli -h 10.220.5.65 -p 6380
10.220.5.65:6380> 
[root@ ~]# redis-cli -h 10.220.5.65 -p 6381
10.220.5.65:6381> 
主从复制,让6381作为主,6379 和6380作为从
10.220.5.65:> slaveof 10.220.5.65 6381
OK
10.220.5.65:> slaveof 10.220.5.65
OK
在主端创建数据,在从节点查看是否被复制了过来
10.220.5.65:6381>  set age 29
OK <<<主端
10.220.5.65:> get age
"" <<<从端,说明已经复制
10.220.5.65:> get age
"" <<<从端,说明已经复制

主从复制已经做好,下面做redis的高可用

redis的高可用是用redis-sentinel,默认在redis中,需要修改配置文件

[root@ ~]# vim /etc/redis-sentinel.conf 
 protected-mode no
sentinel monitor mymaster 10.220.5.65
sentinel config-epoch mymaster

启动redis-sentinel

[root@ ~]#  systemctl start redis-sentinel   <<<端口号为 26379
[root@ ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN *: *:*
LISTEN ::: :::*
LISTEN ::: :::*

登录redistribute-sentinel,并查看主从节点信息

[root@ ~]# redis-cli -h 10.220.5.67 -p
10.220.5.67:>sentinel masters <<<主节点信息

1) 1) "name"
2) "mymaster"
3) "ip"
4) "10.220.5.65"
5) "port"
6) "6381" 
.......

10.220.5.67:26379>sentinel slaves master <<<从节点信息

1) 1) "name"
2) "10.220.5.65:6380"
3) "ip"
4) "10.220.5.65"
5) "port"
6) "6380"

....

2) 1) "name"
2) "10.220.5.65:6379"
3) "ip"
4) "10.220.5.65"
5) "port"
6) "6379"

....

将主节点停掉,再看效果

[root@65DRslave ~]# ps aux |grep redis
redis 1169 0.3 0.7 142952 7320 ? Ssl 16:07 0:11 /usr/bin/redis-server 10.220.5.65:6379
root 1255 0.0 0.0 107988 612 pts/2 T 16:12 0:00 tail -f /redis/6381/redis.log
root 1288 0.3 0.7 142952 7504 ? Ssl 16:18 0:10 redis-server 10.220.5.65:6381
root 1298 0.0 0.5 22128 5212 pts/1 S+ 16:19 0:00 redis-cli -h 10.220.5.65 -p 6379
root 1338 0.3 0.5 142952 5440 ? Ssl 17:04 0:00 redis-server 10.220.5.65:6380
root 1344 0.0 0.5 22124 5128 pts/0 S+ 17:04 0:00 redis-cli -h 10.220.5.65 -p 6380
root 1346 0.0 0.0 112704 956 pts/2 R+ 17:04 0:00 grep --color=auto redis
[root@65DRslave ~]# kill -9 1288

在redis-sentinel端再次查看

10.220.5.67:> sentinel masters
) ) "name"
) "mymaster"
) "ip"
) "10.220.5.65"
) "port"
) "" <<<此次主节点变成了 6379 ,这就是redis的高可用

查看从节点信息

10.220.5.67:> sentinel slaves mymaster
) ) "name"
) "10.220.5.65:6381"
) "ip"
) "10.220.5.65"
) "port"
) ""
10) "s_down,slave,disconnected" <<<6381停掉后变成了从,状态是未连接
) ) "name"
) "10.220.5.65:6380"
) "ip"
) "10.220.5.65"
) "port"
) ""
												

redis多实例和高可用的更多相关文章

  1. Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试

    文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...

  2. Redis从出门到高可用--Redis复制原理与优化

    Redis从出门到高可用–Redis复制原理与优化 单机有什么问题? 1.单机故障; 2.单机容量有瓶颈 3.单机有QPS瓶颈 主从复制:主机数据更新后根据配置和策略,自动同步到备机的master/s ...

  3. Redis系列4:高可用之Sentinel(哨兵模式)

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 1 背景 从第三篇 Redis系列3:高可用之主从架构 ,我们知道,为Re ...

  4. MySQL 系列(五) 多实例、高可用生产环境实战

    MySQL 系列(五) 多实例.高可用生产环境实战   第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 史上最屌.你不知道的数据库操作 第三 ...

  5. net core 实战之 redis 负载均衡和"高可用"实现

    net core 实战之 redis 负载均衡和"高可用"实现 1.概述 分布式系统缓存已经变得不可或缺,本文主要阐述如何实现redis主从复制集群的负载均衡,以及 redis的& ...

  6. Nginx 配置实例-配置高可用

    Nginx 配置实例-配置高可用 1. 实现效果 2. 两台机器 nginx 的安装 2.1 192.168.25.120 中 nginx 的安装 2.1.1 安装 pcre 依赖 2.1.2 安装其 ...

  7. Redis主从复制、多实例、高可用(三)--技术流ken

    Redis主从复制 在开始实现redis的高可用之前,首先来学习一下如何实现redis的主从复制,毕竟高可用也会依赖主从复制的技术. Redis的主从复制,可以实现一个主节点master可以有多个从节 ...

  8. Redis主从复制、多实例、高可用

    Redis主从复制 在开始实现redis的高可用之前,首先来学习一下如何实现redis的主从复制,毕竟高可用也会依赖主从复制的技术. Redis的主从复制,可以实现一个主节点master可以有多个从节 ...

  9. Redis系列(四)-低成本高可用方案设计

    关于Redis高可用方案,看到较多的是keepalived.zookeeper方案. keepalived是主备模式,意味着总有一台浪费着.zookeeper工作量成本偏高. 本文主要介绍下使用官方s ...

随机推荐

  1. http://blog.csdn.net/u012905422/article/details/53340260

    轉自:http://blog.csdn.net/u012905422/article/details/53340260 对于python2.7版本,很多教程(如http://stackoverflow ...

  2. Android studio 中添加依赖model时依赖所需的准备

    例如向app中添加依赖core: core要做如下修改: 1.将core中build.gradle中   修改为  . 2.将core中的 applicationId 注释掉.

  3. 【java】抽象类和接口区别

    1.语法层面上的区别 1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法: 2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public sta ...

  4. tensorflow训练中出现问题Couldn't open CUDA library cupti64_80.dll

    参考链接:http://blog.csdn.net/lanchunhui/article/details/62242568 在代码中添加了tensorboard可视化代码后,原程序运行报错,以上链接方 ...

  5. php如何和linux进行通讯

    FastCGI原理 FastCGI是一个运用于Http Server和动态脚本语言间通信的接口,多数流行的Http Server都支持FastCGI,包括Apache.Nginx和lighttpd等. ...

  6. 解决WCF“接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致"

    最近在工作中新加了一个接口,本地调试的时候,直接抛出“接收对 http://xxx.svc 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的.这还可能是由于服务器中 ...

  7. Unity 代码组件获取和使用、Resources加载、OnGUI、Time、Mathf、PlayerPref

    1.     游戏物体组件获取.添加组件(重要) 作业分析: 子弹生成:坦克生成----->坦克控制类里生成子弹 子弹飞行:子弹自己飞,不能通过坦克控制类进行管理: 获取代码组件,设置子弹速度: ...

  8. RabbitMQ tutorial

    一.安装RabbitMQ RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开 ...

  9. Docker容器开机自动启动

     部署项目服务器时,为了应对停电等情况影响正常web项目的访问,会把Docker容器设置为开机自动启动. 在使用docker run启动容器时,使用--restart参数来设置: # docker r ...

  10. 修改Linux主机名

    如果安装时没有设置,一般默认主机名为localhost.localdomain. 通过以下方式修改成自己设置的主机名: 1. vi /etc/sysconfig/network NETWORKING= ...