redis的repl-ping-slave-period和repl-ping-replica-period
網上很多Redis方面的文章,會涉及到repl-ping-slave-period和repl-ping-replica-period這兩個重要引數,從一些中文解釋來看,意思差不多,即:SLAVE週期性的ping MASTER間隔,可直接理解成SLAVE -> MASTER間的心跳間隔(注意箭頭方向)。
沒有一篇文章同時提取這兩者,總是分開出現在不同文章中。在官方的配置檔案redis.conf,5.0版本之前的均使用repl-ping-slave-period,而從5.0開始變成了repl-ping-replica-period,也就是說這兩個其實是同一個東西。實際上因為一些非技術原因,很多軟體將slave改成了replica,Redis也同樣如此,所以replica和slave是完全相同的。
為了相容,5.0同時支援兩種用法(其它配置項也同樣命運,如:slaveof改成了replicaof):
} else if ((!strcasecmp(argv[0],"repl-ping-slave-period") || !strcasecmp(argv[0],"repl-ping-replica-period")) && argc == 2) { server.repl_ping_slave_period = atoi(argv[1]); if (server.repl_ping_slave_period <= 0) { err = "repl-ping-replica-period must be 1 or greater"; goto loaderr; } } |
常用命令變化,但5.0仍然相容的配置項(實際上所有的slave都改成了replica,包括一些官方網站的文件,不過程式碼中的變數名保持未變,仍就為slave):
<5.0版本 |
>=5.0版本 |
repl-ping-slave-period |
repl-ping-replica-period |
slaveof |
replicaof |
slave-priority |
replica-priority |
slave-read-only |
replica-read-only |
slave-serve-stale-data |
replica-serve-stale-data |
cluster-slave-validity-factor |
cluster-replica-validity-factor |
配置項說明(注意命名包含cluster的為叢集專有配置項):
|
預設值 |
單位 |
|
repl-ping-replica-period |
10 |
秒 |
定義心跳(PING)間隔。 |
repl-timeout |
60 |
秒 |
這個引數一定不能小於repl-ping-replica-period,可以考慮為repl-ping-replica-period的3倍或更大。定義多長時間內均PING不通時,判定心跳超時。對於redis叢集,達到這個值並不會發生主從切換,主從何時切換由引數cluster-node-timeout控制,只有master狀態為fail後,它的slaves才能發起選舉。 |
cluster-node-timeout |
15000 |
毫秒 |
叢集中的節點最大不可用時長,在這個時長內,不會被判定為fail。對於master節點,當不可用時長超過此值時,它slave在延遲至少0.5秒後會發起選舉進行failover成為master。Redis叢集的很多其它值與cluster-node-timeout有關。 |
cluster-slave-validity-factor |
10 |
|
如果設定為0,則slave總是嘗試成為master,無論slave和master間的連結斷開時間的長短。如果是一個大於0的值,則最大可斷開時長為:(cluster-slave-validity-factor * cluster-node-timeout)。例如:當cluster-node-timeout值為5,cluster-slave-validity-factor值為10時,slave和master間的連線斷開50秒內,slave不會嘗試成為master。 |
repl-timeout和cluster-node-timeout的區別:
|
預設值 |
單位 |
|
repl-timeout |
60 |
秒 |
決定複製超時,並不能決定slave發起選舉,也不決定master何時為fail |
cluster-node-timeout |
15000 |
毫秒 |
決定master何時為fail,在fail後,slave會發起選舉 |
相關文章
- MongoDB和Redis的使用MongoDBRedis
- redis學習(九) redis事務和redis指令碼的比較Redis指令碼
- redis api的使用和理解RedisAPI
- Memcached和Redis的區別?Redis
- Redis的Bitmap、HyperLogLog和GeoRedis
- Redis(1)- Redis資料庫的安裝和配置Redis資料庫
- 【Redis 系列】redis 學習十一,redis 的哨兵模式詳解和實戰Redis模式
- redis的雪崩、擊穿和穿透Redis穿透
- redis的好處和壞處Redis
- Redis - 2 - 聊聊Redis的RDB和AOF持久化 - 更新完畢Redis持久化
- 【redis】關於查詢和分析redis中的bigkeys問題Redis
- Linux上的redis的安裝和配置LinuxRedis
- 【Redis 系列】redis 學習八,redis 持久化 RDB 和 AOFRedis持久化
- 好好耕耘redis和memcached的區別Redis
- 談談mysql和redis的區別MySqlRedis
- Redis持久化RDB和AOF的概念Redis持久化
- 紅包雨中:Redis 和 Lua 的邂逅Redis
- windows下Redis的安裝和使用WindowsRedis
- Redis中KEYS和SCAN命令的區別和建議Redis
- Redis詳解 - SpringBoot整合Redis,RedisTemplate和註解兩種方式的使用RedisSpring Boot
- 一篇和Redis有關的鎖和事務的文章Redis
- redis持久化的取捨和選擇Redis持久化
- Redis的訊息釋出和訂閱Redis
- Redis分散式鎖的原理和實現Redis分散式
- Python教程分享:Redis和Memcache的區別?PythonRedis
- redis list 使用和理解Redis
- Mongoose和Redis小結GoRedis
- Redis 和 Memcached 比較Redis
- Redis介紹和使用Redis
- redis配置和工具類Redis
- etcd和redis比較Redis
- redis和php-redis擴充套件在windows下的安裝過程RedisPHP套件Windows
- Redis Stack:基於Redis的搜尋、文件、圖形和時間序列功能Redis
- 使用夜鶯+categraf監控redis和redis叢集Redis
- 細說紛紜——Redis 和 Memcached 的區別Redis
- redis自學(33)哨兵的作用和工作原理Redis
- Redis的記憶體和實現機制Redis記憶體
- REDIS 快取的穿透,雪崩和熱點keyRedis快取穿透