[Redis基础]-- Redis的HA搭建和主从复制搭建以及测试

Linux Redis主从复制\切换安装、测试

软件版本:redis-3.0.7,必须使用该稳定版本否则会错各种问题

基本安装步骤:
Redis安装(三个节点)
安装相关编译的依赖包
# yum -y install gcc make

安装redis(三个节点)
软件上传到/opt目录
# cd /opt/
# tar -zxvf redis-3.0.7.tar.gz
# mv redis-3.0.7/ redis/
# cd redis/
# make && make install

一、配置192.168.1.101(主机名:node1)的副本集(192.168.1.102--->主机名:node2,192.168.1.103-->主机名:node3)

 

1、修改192.168.1.102 、192.168.1.103的redis.cong文件,保存并且退出

   slaveof node1 6379

2、启动192.168.1.101 ,再启动192.168.1.102、192.168.1.103

   #./src/redis-server redis.conf

3、测试是否正常

   进入node1客户端进行插入数据:

   #./redis-cli 6379

   

二、sentinel配置三台机器的redis集群

1、集群节点:

节点1:192.168.1.101  目录----》/opt/soft/master-redis/redis

节点2:192.168.1.102  目录----》/opt/soft/slave-redis/redis

节点3:192.168.1.103  目录----》/opt/soft/slave-redis/redis

 

2、修改192.168.1.101节点上的文件

   vi /redis/sentinel.conf

   内容如下:

   port 26379                                       ----##sentinel实例之间的通讯端口

   sentinel monitor mymaster node1 6379 2          ---mymaster是主节点名称,node1是主节点主机名,6379是主节点端口,

    ---"2"是当有两个sentinel实例同时检测到redis异常时,才会有反应

   sentinel down-after-milliseconds mymaster 60000 ---心跳时间60秒      

   sentinel failover-timeout mymaster 180000             ---故障转移时间180秒  

   sentinel parallel-syncs mymaster 2                           ---主节点对应2个slave从节点

 

3、发送sentinel.conf 到192.168.1.102 、192.168.1.102上

4、启动sentinel;先在node1上启动---》再启动node2和node3的sentnel

    #./src/redis-sentinel sentinel.conf &

5、启动redis服务端命令:

#/opt/soft/slave-redis/redis/src/redis-server /opt/soft/slave-redis/redis/redis.conf &

   停止服务命令:/opt/soft/maste-redis/redis/src/redis-cli shutdown

6、测试主从切换架构

 启动redis后,主节点是node1,当停止node1的服务后,再启动node2的redis服务,会发现node2变成了master

 Jedis API访问时,必须访问redis master才能获得结果

 

import redis.clients.jedis.Jedis;

import java.util.Random;

/**

 * Document:本类作用---->测试链接redis,副本集测试、以及主从切换测试

 * 当主挂了以后,从节点之一马上升级为主节点

 * User: yangjf

 * Date: 2016072016/7/315:26

 */

public class ConnectRedisTest {

    public static void main(String[] args) {

        Jedis jedis=new Jedis("node2",6379);

//        jedis.auth("test_redis"); 如果是redis-3.2.1版本,则需要该认证

        String keynode1=String.valueOf(new Random().nextInt(236));

        String keynode2=String.valueOf(new Random().nextInt(5645));

        jedis.set(keynode1,keynode2);

        String value=jedis.get(keynode1);

        System.out.println("node2结果是:"+value);

        Jedis jedis2=new Jedis("node1",6379);

        System.out.println("node1结果是:"+jedis2.get(keynode1));

        Jedis jedis3=new Jedis("node3",6379);

        System.out.println("node3结果是:"+jedis3.get(keynode1));

    }

}

 

7、停止服务:需要先停止sentinel,再停止redis服务

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事随风ing

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值