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

  

posted @ 2019-12-18 13:01  墨白`Blog  阅读(903)  评论(0编辑  收藏  举报