redis哨兵主从配置

REDIS哨兵主从配置

  1. 环境描述
    操作系统:CentOS 5.10 x64
    硬件配置:阿里云8核8G100G硬盘。
    IP地址:10.253.2.32 【默认主】
    IP地址:10.253.5.158【默认从】
    版本号:redis-2.8
  2. Redis安装部署
    Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集.
    (difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。
    Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全
    久化模式”)。
    安装 tcl
    下载tcl 包 http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
    --解压包
    tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
    --进入目录
    cd /usr/local/tcl8.6.1/unix/
    --安装前检查
    ./configure
    --编译
    make
    --运行
    make install

    安装时间比较花时间

    安装redis
    1. 下载地址:
    $ wget http://redis.io/download
    2. 解压缩
    $ tar xzf redis-2.8.19.tar.gz
    3. 编译
    $ cd redis-2.8.19
    $ make
    $make install
    或者指定目录安装
    $ make PREFIX=/home/redis/redis install
    $cp redis.conf /etc/
    参数介绍:
    make install命令执行完成后,会在/usr/local/bin目录下生成个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof 、redis-check-dump,它们的作用如下:
    redis-server:Redis服务器的daemon启动程序
    redis-cli:Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作
    redis-benchmark:Redis性能测试工具,测试Redis在当前系统下的读写性能
    redis-check-aof:数据修复
    redis-check-dump:检查导出工具
    4. 修改系统配置文件,执行命令
    a) echo vm.overcommit_memory=1 >> /etc/sysctl.conf
    b) sysctl vm.overcommit_memory=1 或执行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory
    使用数字含义:
    0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
    1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
    2,表示内核允许分配超过所有物理内存和交换空间总和的内存
    5. 修改redis配置文件
    a) $ cd /etc/
    b) vi redis.conf
    c) 修改daemonize yes---目的使进程在后台运行
    参数介绍:
    daemonize:是否以后台daemon方式运行
    pidfile:pid文件位置
    port:监听的端口号
    timeout:请求超时时间
    loglevel:log信息级别
    logfile:log文件位置
    databases:开启数据库的数量
    save :保存快照的频率,第一个表示多长时间,第三个表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
    rdbcompression:是否使用压缩
    dbfilename:数据快照文件名(只是文件名,不包括目录)
    dir:数据快照的保存目录(这个是目录)
    appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
    appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
    6. 启动redis
    a) $ cd /usr/local/bin
    b) ./redis-server /etc/redis.conf
    7. 检查是否启动成功
    a) $ ps -ef | grep redis
    b) redis-cli -p 8086
    127.0.0.1:6379> set foo bat
    OK
    127.0.0.1:6379> set foo bar
    OK
    127.0.0.1:6379> get foo
    "bar"
    127.0.0.1:6379> get bat

  3. Redis主从配置
    仅需要在slave node上修改配置:
    找到slaveof这行,参考下面的修改(填上master node的ip和端口就完事了)
    slaveof 10.253.2.332 8086 //哨兵主从配置,第一次必须人工定义好主从。后续哨兵记住了同一网络中存在的所有redis服务器,会自动删除掉此配置。
    另外注意下 slave-read-only yes 这行,这表示slave只读不写,也是推荐设置【在哨兵主从这个参数不需要配置,因为从机我们还需要提升为master】
  4. 哨兵的配置
    redis提供了sentinel(哨兵)机制,通过sentinel模式启动redis后,自动监控master/slave的运行状态,基本原理是:心跳机制+投票裁决。每个sentinel会向其它sentinal、master、slave定时发送消息,以确认对方是否“活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的“主观认为宕机” Subjective Down,简称SDOWN)。
    若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称ODOWN),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置。
    在2台redis服务器上分别创建sentinel.conf文件
    安装redis之后,其安装目录为/usr/loca/bin/
    在此目录下,创建conf文件夹,然后在conf文件夹创建sentinel.conf,内容如下:
    port 7050 //哨兵监听的端口号
    dir /usr/local/bin/ //redis的主目录
    sentinel monitor mymaster 10.253.2.32 8086 1 //默认的主服务器。 1表示只要一个哨兵监听到主服务器ODOWN,就开始failover.
    sentinel down-after-milliseconds mymaster 5000 //哨兵监听redis主服务器没有响应超过5秒,就认为是SDOWN了。
    sentinel parallel-syncs mymaster 1 //新master启动之后,只允许同一时刻一台从服务器更新同步数据
    sentinel failover-timeout mymaster 15000 //哨兵监听redis主服务器没有响应超过15秒,就开始进行failover,进行选举新的master。
    启动redis
    ./redis-server /etc/redis.conf
    启动哨兵
    ./redis-sentinel conf/sentinel.conf
    确认主机
    在2台机器上同时确认主机信息
    ./redis-cli -p 7050 sentinel masters
    ) 1) "name"
    2) "mymaster"
    3) "ip"
    4) "10.253.2.32"
    5) "port"
    6) "8086"
    7) "runid"
    8) "3bad76dd51566847d8b0603865310b87584201f9"
    9) "flags"
    10) "master"
    11) "pending-commands"
    12) "0"
    13) "last-ping-sent"
    14) "0"
    15) "last-ok-ping-reply"
    16) "351"
    17) "last-ping-reply"
    18) "351"
    19) "down-after-milliseconds"
    20) "5000"
    21) "info-refresh"
    22) "8559"
    23) "role-reported"
    24) "master"
    25) "role-reported-time"
    26) "44678013"
    27) "config-epoch"
    28) "8"
    29) "num-slaves"
    30) "1"
    31) "num-other-sentinels"
    32) "1"
    33) "quorum"
    34) "1"
    35) "failover-timeout"
    36) "15000"
    37) "parallel-syncs"
    38) "1"
    关闭掉主服务器
    ./redis-cli -p 8086 shutdown
    再次确认主机信息
    ./redis-cli -p 7050 sentinel masters
    ) 1) "name"
    2) "mymaster"
    3) "ip"
    4) "10.253.5.158"
    5) "port"
    6) "8086"
    7) "runid"
    8) "3bad76dd51566847d8b0603865310b87584201f9"
    9) "flags"
    10) "master"
    11) "pending-commands"
    12) "0"
    13) "last-ping-sent"
    14) "0"
    15) "last-ok-ping-reply"
    16) "351"
    17) "last-ping-reply"
    18) "351"
    19) "down-after-milliseconds"
    20) "5000"
    21) "info-refresh"
    22) "8559"
    23) "role-reported"
    24) "master"
    25) "role-reported-time"
    26) "44678013"
    27) "config-epoch"
    28) "8"
    29) "num-slaves"
    30) "1"
    31) "num-other-sentinels"
    32) "1"
    33) "quorum"
    34) "1"
    35) "failover-timeout"
    36) "15000"
    37) "parallel-syncs"
    38) "1"
    查看哨兵的配置
    port 7050
    dir "/usr/local/bin"
    sentinel monitor mymaster 10.253.2.32 8086 1
    sentinel down-after-milliseconds mymaster 5000
    sentinel failover-timeout mymaster 15000

    Generated by CONFIG REWRITE

    sentinel config-epoch mymaster 8
    sentinel leader-epoch mymaster 8
    sentinel known-slave mymaster 10.253.5.158 8086
    sentinel known-sentinel mymaster 10.253.5.158 3306 8f27d969797b27e89da6ed2156ba9f1cebfdc885 //哨兵记录了网络中存在的这台redis服务器,在10.253.2.32 down掉之后,通过选举把10.253.5.158定义为主服务器。同时,记录了这台redis服务器的信息在自己的配置文件中。2台服务器上的哨兵配置都会记录。
    sentinel current-epoch 8

  5. 生产项目配置redis
    配置文件application.yml
    spring:
    redis:
    sentinel:
    master: mymaster
    nodes: 10.253.2.32:3306,10.253.5.158:3306

原文地址:http://blog.51cto.com/nhylovezyh/2087337

时间: 2024-10-08 04:24:54

redis哨兵主从配置的相关文章

docker Redis的主从配置

redis是k-v型nosql数据库,支持字符串(string).列表(list).集合(set).散列(hash).有序集合(zset:形如member:score的散列集合,其中member为成员,score为成员得分,必须为float型数据). 综合使用redis的以上5种数据类型,可以将redis应用于各种场景,比如点赞.投票网站.消息队列.分布式锁(使用setnx指令,该指令只有在key不存在的时候,才会执行写入操作).文件分发(没研究过).日志记录等等. redis支持主从配置(拓展

redis学习主从配置

配置slave服务器只需要在配置文件中加入如下配置: slaveof 127.0.0.1 6379 即:slaveof  masterip  masterport redis学习主从配置

Docker下redis的主从配置

1.拉取redis镜像docker pull redis2.启动3个redis容器服务,分别使用到6379.6380.6381端口docker run --name redis-6379 -p 6379:6379 -d redisdocker run --name redis-6380 -p 6380:6379 -d redisdocker run --name redis-6381 -p 6381:6379 -dredis3.查看容器[[email protected] ~]$ docker

Redis的主从配置

一.主从配置过程 关于主从配置的过程,我们这里就不做具体详细解释了,看这个文章,还是不错的: https://www.cnblogs.com/ysocean/p/9143118.html 二.主从复制的原理 这才是我们的主要问题,我们来看一下 Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作. ①.旧版同步 当从节点发出 SLAVEOF 命令,要求从服务器复制主服务器时,从服务器通过向主服务器发送 SYNC 命令来完成.该命令执行步骤: 1.从服务

jedis支持哨兵主从配置role为slave

jedis功能强大,但是不能像nodejs一样指定从slave中读数据,使数据量读写量较大时读写分离,减少redis压力. 我们可以利用jedis中的方法封装一个类似于此的方法. github地址: https://github.com/candyleer/jedis-enhance 使用方法如: 指定masterName名称,sentinels 地址,并定义一个连接池,初始化后可以从中获取一个jedis连接,支持哨兵的master切换后重新选举合适的slave,如果当前连接的slave挂了,需

NoSQL -- redis 安装 主从 配置详解 常用命令

Redis 也是key-value存储系统,官方站点 http://redis.io,但相对于memcache,有如下优势: 1.支持更多地value类型(string.hash.lists.sets.sorted sets等): 2.支持数据持久化,预防服务重启后需要重新存储: redis 有两种文件格式:全量数据(RDB=redis database).增量请求(aof=append only file). 前者是将内存中的数据写进磁盘,便于下次读取文件时直接进行加载,快照形式: 后者是将r

linux下如何安装配置redis及主从配置

redis是一种非关系型数据存储工具,这区别于传统的关系型数据库(像MySQL等),类似于memcache,并且其内部集成了对list(链表).set(集合)的操作,可以很方便快速的处理数据(像插入.删除list取交集 并集 差集等),这极大的减轻了底层数据库的压力,并且给用户更快的响应速度. redis的优点:支持主从备份,操作指令丰富,支持异步的数据持久化 一丶使用 将 redis 安装到 /usr/local/webserver/redis 1.下载安装包 wget http://redi

redis的主从配置与故障切换恢复操作

1)机器信息Redis主从结构支持一主多从,这里我使用一主两从(一主一从也行,配置一样)主节点 172.16.0.237 master-node从节点 172.16.0.131 slave-node1 关闭两个节点机的iptables防火墙和selinux 2)安装redis三台节点机的安装步骤一样[[email protected] ~]# wget http://download.redis.io/redis-stable.tar.gz[[email protected] ~]# tar -

Redis之-主从配置

集群的作用:1,主从备份 防止主库down机2,读写分离,分担master压力3,任务分离,如从服务器分担备份的工作 大概同步原理:1,slave启动发现需要连接master,那么sync自动同步一下2,master dump出一份rdb文件给slave3,master新产生的数据,通过缓冲aof文件4,然后通过replicationfeedsalves进程保持联系: master配置:1,关闭rdb快照--备份交给slave2,开启aof slave配置:1,声明slave-of2,配置密码-