热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

REDIS主从搭建

篇首语:本文由编程笔记#小编为大家整理,主要介绍了REDIS主从搭建相关的知识,希望对你有一定的参考价值。一、搭建主从配置

篇首语:本文由编程笔记#小编为大家整理,主要介绍了REDIS主从搭建相关的知识,希望对你有一定的参考价值。



一、搭建主从配置


  1. 这里在一台机器上采用伪分布式的方式部署(生产环境应该是多台机器)

  2. 安装redis5.0以上

    mkdir redis-master redis-slave1 redis-slave2
    tar -zxvf redis-5.0.10.tar.gz
    cd redis-5.0.10
    make install PREFIX=/usr/local/redis-ms/redis-master/
    cp redis.conf /usr/local/redis-ms/redis-master/bin/

    问题1:gcc:命令未找到

    yum -y install gcc automake autoconf libtool make

    问题2:致命错误:jemalloc/jemalloc.h:没有那个文件或。。。

    make MALLOC=libc

  3. 修改redis.conf

    # 将`daemonize`由`no`改为`yes`
    daemonize yes
    # 默认绑定的是回环地址,默认不能被其他机器访问
    # bind 127.0.0.1
    # 是否开启保护模式,由yes该为no
    protected-mode no
    #有密码的话
    requirepass 123456
    masterauth 123456

  4. 复制master到slave

    cp -r redis-master/* /usr/local/redis-ms/redis-slave1
    cp -r redis-master/* /usr/local/redis-ms/redis-slave2

    修改slave1的redis.conf

    #port改为6380,并加上replicaof 127.0.0.1 6379
    port 6380
    replicaof 127.0.0.1 6379

    修改slave2的redis.conf

    #port改为6381,并加上replicaof 127.0.0.1 6379
    port 6381
    replicaof 127.0.0.1 6379

  5. 启动

    cd redis-master/bin/
    ./redis-server redis.conf
    cd ../../redis-slave1/bin/
    ./redis-server redis.conf
    cd ../../redis-slave2/bin/
    ./redis-server redis.conf

  6. 测试
    在master插入数据

    cd ../../redis-master/bin
    ./redis-cli
    127.0.0.1:6379> set name Tom

    在slave里检验是否同步

    cd /usr/local/redis-ms/redis-slave1/bin
    ./redis-cli -p 6380
    127.0.0.1:6380> get name


二、哨兵模式


  1. kill上一步已启动的reids
  2. 创建三个sentinel

    cd /usr/local/redis-ms
    mkdir redis-sentinel1 redis-sentinel2 redis-sentinel3

  3. 复制及配置

    cp -r redis-master/* /usr/local/redis-ms/redis-sentinel1
    cp redis-5.0.10/sentinel.conf redis-sentinel1/bin/
    cd redis-sentinel1/bin/
    vim sentinel.conf
    修改配置文件
    这里修改 daemonize 为 yes
    修改sentinel down-after-milliseconds mymaster 30000 改为 3000
    其它的可以不用改
    有密码的话:
    sentinel auth-pass mymaster 123456
    注意位置,要在sentinel monitor mymaster 127.0.0.1 6379 2后面



sentinel down-after-milliseconds mymaster 3000 : 指定多少毫秒之后
主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒,改成3秒



  1. 复制sentinel1到sentinel2和3

    cp -r redis-sentinel1/* redis-sentinel2
    cd redis-sentinel2/bin/
    vim sentinel.conf
    #修改port为26380
    port 26380
    cd ../../
    cp -r redis-sentinel1/* redis-sentinel3
    cd redis-sentinel3/bin/
    vim sentinel.conf
    #修改port为26381
    port 26381

  2. 启动
    依次启动
    redis-master、redis-slaver1、redis-slaver2、
    redis-sentinel1、redis-sentinel2、redis-sentinel3

    #启动redis-master和redis-slaver
    #在redis-master目录下
    ./redis-server redis.conf
    #在redis-slaver1目录下
    ./redis-server redis.conf
    #在redis-slaver2目录下
    ./redis-server redis.conf
    #启动redis-sentinel
    #在redis-sentinel1目录下
    ./redis-sentinel sentinel.conf
    #在redis-sentinel2目录下
    ./redis-sentinel sentinel.conf
    #在redis-sentinel3目录下
    ./redis-sentinel sentinel.conf


推荐阅读
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文介绍了如何利用X_CORBA实现远程对象调用,并通过多个示例程序展示了其功能与应用,包括基础的Hello World示例、文件传输工具以及一个完整的聊天系统。 ... [详细]
  • oracle 对硬件环境要求,Oracle 10G数据库软硬件环境的要求 ... [详细]
  • 本文详细记录了 MIT 6.824 课程中 MapReduce 实验的开发过程,包括环境搭建、实验步骤和具体实现方法。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • C语言是计算机科学和编程领域的基石,许多初学者在学习过程中会感到困惑。本文将详细介绍C语言的基本概念、关键语法和实用示例,帮助你快速上手C语言。 ... [详细]
author-avatar
抵达不了了的叫幸福_999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有