4、redis.conf中replication配置项说明

注意:在master-slave部署模式下,只需slave实例配置Peplication相关项,各项含义说明如下。
        1) slaveof <masterip> <masterport>
        slave实例需要配置该项,指向master的(ip, port)。
        2) masterauth <master-password>
        如果master实例启用了密码保护,则该配置项需填master的启动密码;若master未启用密码,该配置项需要注释掉
        3) slave-serve-stale-data
        指定slave与master连接中断时的动作。默认为yes,表明slave会继续应答来自client的请求,但这些数据可能已经过期(因为连接中断导致无法从master同步)。若配置为no,则slave除正常应答"INFO"和"SLAVEOF"命令外,其余来自客户端的请求命令均会得到"SYNC with master in progress"的应答,直到该slave与master的连接重建成功或该slave被提升为master。
        4) slave-read-only
        指定slave是否只读,默认为yes。若配置为no,这表示slave是可写的,但写的内容在主从同步完成后会被删掉。
        5) repl-ping-slave-period
        Redis部署为Replication模式后,slave会以预定周期(默认10s)发PING包给master,该配置可以更改这个默认周期。
        6) repl-timeout
        有2种情况的超时均由该配置指定:1) Bulk transfer I/O timeout; 2) master data or ping response timeout。
        需要特别注意的是:若修改默认值,则用户输入的值必须大于repl-ping-slave-period的配置值,否则在主从链路延时较高时,会频繁timeout。
        7) repl-disable-tcp-nodelay
        指定向slave同步数据时,是否禁用socket的NO_DELAY选项。若配置为yes,则禁用NO_DELAY,则TCP协议栈会合并小包统一发送,这样可以减少主从节点间的包数量并节省带宽,但会增加数据同步到slave的时间。若配置为no,表明启用NO_DELAY,则TCP协议栈不会延迟小包的发送时机,这样数据同步的延时会减少,但需要更大的带宽。通常情况下,应该配置为no以降低同步延时,但在主从节点间网络负载已经很高的情况下,可以配置为yes。
        备注:socket的NO_DELAY选项涉及到TCP协议栈的拥塞控制算法—Nagle‘s Algorithm
        8) slave-priority
        指定slave的优先级。在不只1个slave存在的部署环境下,当master宕机时,Redis Sentinel会将priority值最小的slave提升为master。需要注意的是,若该配置项为0,则对应的slave永远不会被Redis Sentinel自动提升为master。

关于Replication,需要明确的几点(以下内容主要总结自这里):
        a. Redis的Replication跟cluster的概念不同。假如S是M的slave,则M不能把自己设置成为S的slave。若S挂掉,则M正常工作;相反,若M挂掉,则S可能会停止正常工作,这里用"可能",是因为S的具体行为由其配置文件中的slave-serve-stale-data来决定。
        b 假设共2个节点,M为master,S为slave,若M挂掉,则合理的处理方式是将S提升为master(通过SLAVE NO ONE命令)。当原来的master M恢复后,将M设置为S的slave。当然,实际处理方式并不限于这里的建议。
        c. 假设共3个节点,M为master,S1和S2均为slave,若M挂掉,合理的处理方式是将其中1个slave提升为master,同时,需将另一个slave的master重新设置为新的master实例。

现在,新问题来了:如何得知M已经挂掉了?
        这就涉及到Redis的监控,所幸的是,我们可以借助Redis官方发布的工具Redis Sentinel完成监控任务。

下篇笔记会说明sentinel的用法并讨论实际使用中可能踩到的坑。

时间: 2024-10-05 09:45:37

4、redis.conf中replication配置项说明的相关文章

3、redis.conf中的持久化相关配置

Redis支持2种持久化策略:snapshot方式和commandlog方式,前者通过将当前内存数据快照周期性写入RDB文件来实现:后者通过在log中记录Redis进程收到的写操作来实现,下次Redis重启时,回放commandlog来恢复数据状态.        根据实际需求,用户可以选择完全禁用持久化,也可以在同一个Redis实例中同时启用RDB和AOF.        特别注意:如果部署方式为主从,则不同实例的持久化时机最好错开!避免master和slaves同时进入后台持久化,这可能会降

redis.conf中bind绑定IP不对,redis集群创建节点的时候,报错|redi群集密码设置

前言# 我们都知道,redis 的配置文件中,默认绑定接口是 127.0.0.1,也就是本地回环接口,所以是无法从外网连接 redis 服务的.如果想要让外网也能连接使用服务器上的 redis 服务,可以简单地注释掉 bind 这一行.但对于 bind 参数的作用,网上有很多文章的解释都是误人子弟的. 关于bind# 翻看网上的文章,此处多翻译为: 指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项.这种解释会搞糊涂初学者,甚至是错误

Redis的安装和使用之三------redis.conf配置释义

Redis配置文件被分成几大块区域,分别是: 1.通用(general) 2.快照(snapshotting) 3.复制(replication) 4.安全(security) 5.限制(limits) 6.追加模式(append only mode) 7.LUA脚本(lua scripting) 8.Redis集群(redis cluster) 9.慢日志(slow log) 10.延迟监控(latency monitor) 11.事件通知(event notification) 12.高级配

Redis.conf及其Sentinel.conf配置项详细说明

一.redis.conf 配置项说明如下: 1. daemonize no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 2. pidfile /var/run/redis_6379.pid 当Redis以守护进程方式运行时,即使该项没有配置,Redis也会默认把pid写入/var/run/redis.pid文件:而当Redis不是以守护进程凡是运行时,若该项没有配置,则redis不会创建pid文件.创建pid文件是尝试性的动作,即使创建写入失败,redi

vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释

本文原文出处: http://blog.csdn.net/bluishglc/article/details/42273197严禁任何形式的转载,否则将委托CSDN官方维护权益! 问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系? 首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载

redis的redis.conf文件详解

是2.6.12版本的 1 redis.conf配置文件 2 3 # Redis configuration file example 4 5 # Note on units: when memory size is needed, it is possible to specifiy 6 # it in the usual form of 1k 5GB 4M and so forth: 7 # 8 # 1k => 1000 bytes 9 # 1kb => 1024 bytes 10 # 1m

redis.conf的详细说明:

redis.conf的详细说明:参考:http://blog.csdn.net/vv_demon/article/details/7676384 # By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.#Redis默认不是以守护进程的方式运行,可以通过该配置项

redis配置文件redis.conf的参数说明

打开redis.conf文件: # By default Redis does not run as a daemon. Use 'yes' if you need it. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no # When running daemonized,

redis.conf的配置解析

# redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位, # 通常的格式就是 1k 5gb 4m 等酱紫: # # 1k  => 1000 bytes # 1kb => 1024 bytes # 1m  => 1000000 bytes # 1mb => 1024*1024 bytes # 1g  => 1000000000 bytes # 1gb => 1024*1024*1024 bytes # # 单位是不区分大小写的,你写 1K