Day7 Redis组态档设定-REPLICATION

Redis.config

REPLICATION

  • replicaof

透过非同步方式进行Master与Replica进行资料同步,由Replica进行设定Master的IP与Port。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658mrG5praJH9.png

# 预设
# replicaof <masterip> <masterport>

# 需与Master 127.0.0.1 6379 进行同步 
replicaof 127.0.0.1 6379
  • masterauth

当同步Master有设定"requirepass"时,需要一起绑定验证密码。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658Qk9ZOyQtsw.png

# 预设
# masterauth <master-password>
  • masteruser

Redis6.0 支援设定同步Master中设定的用户名。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658DWEoTTv9WJ.png

# 预设
# masteruser <username>
  • replica-serve-stale-data

当Master与Replica正在同步资料时或是失去中间的连线时,Replica是否还可以提供给用户端连线使用,即便资料可能会与Master不一致。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658ljrKWfUgiN.png

# 预设
# 可以提供给用户端连线使用
replica-serve-stale-data yes
  • replica-read-only

Replica是否只允许进行读取操作而不能写入。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658uWoK05aghV.png

# 预设
# 只读不可以写入
replica-read-only yes
  • repl-diskless-sync

是否需要开启无磁碟化同步资料,减少使用磁碟避免因为IO问题造成效能瓶颈。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658HHALaAnH4G.png

# 预设
# 预设no则快照资料会先落地到Master的dump.rdb後在同步到Replica。
repl-diskless-sync no

# 如果是yes,则资料在快照时不会先落地到Master的磁碟,而直接同步到Replica,需搭配repl-diskless-sync-delay一起配置使用。
repl-diskless-sync yes
  • repl-diskless-sync-delay

Master快照同步前等待与Replica进行连线,以利後续同步,但时间越长代表Master与Replica差异越大。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658ZdaxdzuZed.png

# 预设
repl-diskless-sync-delay 5
  • repl-diskless-load

Replica载入资料配置。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658xuFeAS9oi5.png

# 预设
# 资料会先同步到rdb後再处道道记忆体
repl-diskless-load disabled

# 记忆体资料为空时,会直接处理到记忆体内,不用写入rdb。不为空则需要写入rdb後处理到记忆体中
repl-diskless-load on-empty-db

# 直接处理到记忆体中,不写入rdb档案,并且保留了原来的资料,实际上记忆体会有两份资料,当记忆体不足时,会out of memory的问题
repl-diskless-load swapdb
  • repl-ping-replica-period

心跳多久确认一次。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658rPmNUDQZdB.png

# 预设
# 10秒一次PING
# repl-ping-replica-period 10
  • repl-timeout

设定timeout时间,注意不可以设定小於repl-ping-replica-period,否则很容易因为网路延迟造成中断。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658VZYe2JNjrZ.png

# 预设
# 60秒
# repl-timeout 60
  • repl-disable-tcp-nodelay

是否需要即时传送Master与Replica同步资料。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658L6TDT2i9Mb.png

# 预设
# Linux核心将使用大概40毫秒的时候快取资料,一次性将尽可能多的资料传送出去
repl-disable-tcp-nodelay no

# 有资料就马上送,不管封包大小
repl-disable-tcp-nodelay yes
  • repl-backlog-size

设定aster记忆体缓冲区大小给同步Replica使用。

https://ithelp.ithome.com.tw/upload/images/20210922/201116587SVVBTVfx8.png

# 预设
# repl-backlog-size 1mb
  • repl-backlog-ttl

设定多久没有Replica则释放记忆体缓冲区。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658dmUXw3ydUE.png

# 预设
# repl-backlog-ttl 36000

# 永远不释放
repl-backlog-ttl 0
  • replica-priority

设定Replica优先权,越小优先权越大。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658a9A1NJf5Iv.png

# 预设
replica-priority 100

# 不移转
replica-priority 0
  • replica-announced

Replica是否要宣告排除,此设定不会影响replica-priority。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658ZXMRZNPGLo.png

# 预设
# replica-announced yes
  • min-replicas-to-write / min-replicas-max-lag

设定至少要有多少个Replica与延迟小於多少时间才可以让Master提供用户端进行操作。

https://ithelp.ithome.com.tw/upload/images/20210922/201116585bq1MQh8gY.png

# 预设
# min-replicas-to-write 3
# min-replicas-max-lag 10
  • replica-announce-ip / replica-announce-port

宣告排除的Replica Ip和Port。

https://ithelp.ithome.com.tw/upload/images/20210922/20111658OOAjgssnPI.png

# 预设
# replica-announce-ip 5.5.5.5
# replica-announce-port 1234

<<:  08 C++演算法自学指南

>>:  共享资料夹&硬碟管理总结

Day [27] Azure 认知服务-Custom Vision

前言 我们已将Cahtbot与Azure 认知服务(Cognitive Services)中的LUI...

Day30 - 模型复杂度分析

在最後一天的内容中,我们会以参数量、乘法数、训练过程中每一个epoch所需的时间与测试过程中每一笔资...

C++时间日期,需收费另外再跟我说明

交出来的程序最少都要有headerfile(.h)档和mainfile(.cpp)档这两个档案才行,...

中央状态指挥中心- Vuex [续]

Vuex 结构分为 state getters mutations actions 四个部分 Sta...

Day1 理解 golang slice 用法及原理 I

我写什麽 这系列叫做後端菜鸡学习杂记,所以我也没打算特定写什麽,在熟悉了 go 语法之後,常常只使用...