zoukankan      html  css  js  c++  java
  • redis主从配置

    一、Redis介绍

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

    二、什么事主从复制?

      主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。

      默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

    三、主从复制的作用

    1. 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
    2. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
    3. 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
    4. 读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量;
    5. 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

     主从配置:

      实验环境:

        首先我这里准备了3台redis

        IP:172.17.0.5

        IP:172.17.0.6

        IP:172.17.0.7

      

       1.进入redis中查看 redis-cli 

      

      2.查看现在redis角色

    info replication
    

      

      

      现在三台现在都是master。

      3.配置主从,选择一台当master主节点 ,其他的2台当做slave从节点

      我这里选择的172.17.0.7为master主节点,其他的2台配置slave从节点

      

    配置slave节点

     127.0.0.1:6379> SLAVEOF 172.17.0.7 6379

      进入172.17.0.7服务查看状态,已经配置好2台

      

      从服务器状态

      

      可以先测试一下

      

      配置到此redis 主从配置已经成功

       

      注意:

      配置了主从后,从节点服务不能执行set操作

      

    四、配置Sentinel哨兵

      

          增加配置文件Sentinel.conf

          可以从官网下载

    wget http://download.redis.io/redis-stable/sentinel.conf

     

    修改配置sentinel.conf
    # 添加守护进程模式
    daemonize yes
    
    
    # 修改工作目录
    #logfile "/etc/redis/redis.conf/log/sentinel-36379.log"
    
    # 修改启动端口 这里是 哨兵端口,不要和redis端口冲突
    port 26379
    
    # 添加关闭保护模式
    protected-mode no
    
    # 修改sentinel monitor   名称  主ip 端口   选举票数
    sentinel monitor redis-master 172.17.0.7 6379 1
    

      

    redis-sentinel sentinel.conf
    

     启动成功,现在断掉主master服务

     主节点已经替换为172.17.0.5 这台机子

    docker 目录无权限时

    在docker run一个容器时,加上 --privileged=true
    

      

  • 相关阅读:
    bcrypt加密算法原理和应用
    spring security 防止iframes攻击
    angularjs在eclipse下不要随意ctrl+shift+f缩进代码
    第五章 容器之元组
    第五章 容器之列表
    第四章 函数
    第3章 编程概论
    mysql排序分组
    数据表的基本操作
    数据库基本操作
  • 原文地址:https://www.cnblogs.com/inkwhite/p/12058487.html
Copyright © 2011-2022 走看看