Redis 主从配置密码以及哨兵

Redis 主从介绍

主Redis写入数据时,从Redis会通过Redis Sync机制,同步数据,确保数据一致。并且Redis有哨兵(Sentinel)机制,Redis主挂掉会自动帮我们提升从为主。


主从同步类型以及哨兵介绍

  级联复制

    为避免主Redis同时读写压力过大,三个包括以上节点的Redis,可以配置为级联复制,如下图所示,节点4可以同步节点3数据,也可以同步节点2数据。

  

  一主多从

    需要两个以及以上节点。因为Redis是异步同步数据,数据写入主节点并返回客户端,并不代表从节点也已经写入数据,而从节点同步的结果也并不会返回给主节点,而是会直接丢弃。所以(上图)级联复制从节点3同步从节点2数据,就又多了一层丢数据的风险,具体采用哪种方式看自己情况。

  哨兵机制

    有了主从,那我们需要对其进行监控,Sentinel会不断地检查你的主服务器和从服务器是否运作正常。某个节点故障后,Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(Progress), 这些进程使用流言协议(Gossip Protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(Agreement Protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器。


Redis 主从配置

系统环境 Debian,一主一从配置。

  主节点IP:192.168.198.131

  从节点IP:192.168.198.132

  端口使用默认6379

节点1 节点2 全部执行以下命令,不同的地方有标注。

cd /data/   #我习惯把Redis 放在data目录下

wget http://download.redis.io/releases/redis-3.2.9.tar.gz

tar -xf redis-3.2.9.tar.gz

mv redis-3.2.9 redis

cd redis/

make && make install

cp src/redis-server /usr/bin/redis-server

cp src/redis-cli /usr/bin/redis-cli

mv  redis.conf  redis.conf~

cat redis.conf~ | grep -Ev "^$|^#" > redis.conf

vim redis.conf     #修改以下内容,不是必须的

bind  192.168.198.131   #两台主机分别改为自己的IP

logfile  "/data/redis/logs/redis.log"

daemonize yes   #启用守护模式

slave-read-only yes   #slave 默认就是只读的,这里不用管。

protected-mode no   #protected-mode 是3.2 之后加入的新特性,为了禁止公网访问redis cache,加强redis安全的。根据自己需要配置,它启用的条件,有两个,没有bind IP 以及没有设置访问密码。

requirepass  "admin.123"    #设置redis登录密码

masterauth  "admin.123"   #主从认证密码,否则主从不能同步

启用主从模式只有Redis Slave 添加一行,启动服务主从就配置好了。

slaveof 192.168.198.131 6379

检查主从状态

~]# redis-cli  -c -h 192.168.198.131 -p 6379

192.168.198.131:6379> info

.......

# Replication   #中间省略了内容,自己可以看看,主要是找到这一段,看主从状态。
role:master
connected_slaves:1
slave0:ip=192.168.198.132,port=6379,state=online,offset=5700675,lag=0
master_repl_offset:5700675
repl_backlog_active:1
repl_backlog_size:10000000
repl_backlog_first_byte_offset:1
repl_backlog_histlen:5707674

.......


Redis Sentinel  配置

vim sentinel.conf   #在redis的跟目录下

port 26379
daemonize yes
protected-mode no   #保护模式如果开启只接受回环地址的ipv4和ipv6地址链接,拒绝外部链接,而且正常应该配置多个哨兵,避免一个哨兵出现独裁情况,如果配置多个哨兵那如果开启也会拒绝其他sentinel的连接。导致哨兵配置无法生效。
logfile "/data/redis/logs/sentinel.log"      #指明日志文件
dir "/data/redis/sentinel"
sentinel monitor mymaster 192.168.198.131 6379 1   #哨兵监控的master。
sentinel down-after-milliseconds mymaster 5000     #master或者slave多少时间(默认30秒)不能使用标记为down状态。
sentinel failover-timeout mymaster 9000    #若哨兵在配置值内未能完成故障转移操作,则任务本次故障转移失败。

sentinel auth-pass mymaster tomredis.123    #如果redis配置了密码,那这里必须配置认证,否则不能自动切换

/data/redis/src/redis-sentinel /data/redis/sentinel.conf    #启动服务

如果有下面报错  启动命令后面要加上  --sentinel

*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 6
>>> ‘sentinel monitor mymaster 192.168.198.131 6379 1‘
sentinel directive while not in sentinel mode

多个哨兵配置文件一样,正常情况下要配置奇数哨兵,避免切换时候票数相同,出现竞争,影响线上业务。

原文地址:https://www.cnblogs.com/MYue/p/8855888.html

时间: 2024-08-28 12:47:52

Redis 主从配置密码以及哨兵的相关文章

redis主从配置和哨兵

1.redis主从配置 如果redis需要实现高可用.前提条件就是实现数据的同步 (1)拷贝配置shards文件夹 改名为sentinel (2)主从搭建策略 6379主机. 6380从机 6381从机 (3)状态信息检查 info replication (4)主从挂载 (5)检查主从挂载状态 2.哨兵机制 2.1哨兵的作用 通过哨兵机制,可以实现redis的高可用,如果主节点宕机后,由哨兵通过选举机制,选择一台从机.同时修改其他机器的配置文件,配置新的主机. 2.编辑哨兵配置文件 (1)准备

redis主从配置及通过keepalived实现redis自动切换高可用

一:环境介绍: Master: 192.168.1.4 Slave: 192.168.1.5 Virtural IP Address (VIP): 192.168.1.253 二:设计思路: 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby: 当 Master 挂掉,Slave 正时, Slave接管服务,同时关闭主从复制功能: 当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Sl

REDIS主从配置及切换

最近公司项目也用上了.但有个点没有弄很明白. requirepass只是给CLIENT认证用的,还是同时给从REDIS认证用的?(masterauth) 一般的思路是主服务器不开AOF,从服务器打开AOF,以便有更高的主服务器性能. 网上相关文档如下: 环境描述: 主redis:192.168.10.1 6379 从redis:192.168.10.2 6380 一.主从配置 1.将主从redis配置文件redis.conf中的aemonize no 改为 yes 2.修改从redis配置文件r

Redis集群_1.redis主从配置

Redis主从配置(Master-Slave) 一. Redis Replication的特点: 1):一个Master可以同步多个Slave 2):不仅Master可以同步多个Slave,Slave也可以同步其它Slave,可以构成一个图形结构,同时还能分担Master的同步压力 3):Redis Replication使用的是异步复制.从2.8开始,Slave会周期性发起一个Ack确认replication stream被处理进度 4):复制在Master Server是以非阻塞模式完成数据

redis慢查询日志、php安装redis扩展、redis存储session、redis主从配置

一:redis慢查询日志 编辑配置文件/etc/redis.conf针对慢查询日志,可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢查询日志的长度.当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除. slowlog-log-slower-than 1000 //单位ms,表示慢于1000ms则记录日志slowlog-max-len 128 //定义日志长度,表示最多存128条slowlog get //列出所有的慢查询日志slowlog get 2 //只列出2条slowl

Redis主从配置异常解决:Error condition on socket for SYNC: Connection refused

Redis主从配置异常解决:Error condition on socket for SYNC: Connection refused 在docker中搭建的redis主从集群时,从服务器上的redis日志报错: 32677:S 08 Feb 16:14:38.947 * Connecting to MASTER 172.168.10.70:6379 32677:S 08 Feb 16:14:38.948 * MASTER <-> SLAVE sync started 32677:S 08

Windows下Redis主从配置出现Writing to master:Unknow error

异常:Sending command to master in replication handshake: -Writing to master: Unknown error: 解决结论: 从数据库的slaveof所写的ip地址要和 主数据库的bind第一个参数相同: 解决过程: 一.当我在一台操作系统为win10的64位电脑上进行redis主从配置时,出现以上错误,死活连接不上,当时配置如下: 1.(master)配置redis.windows.conf (1)bind 127.0.0.1

Redis 主从配置(Windows版)

原文:Redis 主从配置(Windows版) 安装从库 1.复制一份 Redis 文件,当做从库. 2.修改从库文件中 redis.windows.conf 的端口号. 3.安装服务,需要重新设置名称.然后去服务中,开启“redis6380”(此时就可以连接6380的库了) redis-server --service-install redis.windows.conf  --service-name Redis6380 配置主从服务器 Redis Slaveof 命令 Redis Slav

StackExchange.Redis客户端读写主从配置,以及哨兵配置。

今天简单分享一下StackExchange.Redis客户端中配置主从分离以及哨兵的配置. 关于哨兵如果有不了解的朋友,可以看我之前的一篇分享,当然主从复制文章也可以找到.http://www.cnblogs.com/tdws/tag/NoSql/ 为什么要有这篇分享呢,是因为我之前也有一些疑问,相信学习Redis的朋友都有过相同的疑问. 在代码中,如何分别操作主从数据库?,也就是说,如何只向主数据库写,而读取只向从服务器读.我目前给出的解决方案就是有关Set命令使用主服务器地址,关于Get的命