原内容来自redis官方文档: redis-replication官方文档
基本来说,只要在配置文件里加上
# slaveof <ip> <port>
slaveof 127.0.0.1 6379
就可以完成配置.
如下配置可能有用
# 不使用磁盘同步
repl-diskless-sync
# 同步前的延时, 以等待其他的要链接的slave
repl-diskless-sync-delay
安全问题
如果redis开启复制特性,同时master节点关闭持久化特性。
这时应该避免master节点的自动重启,避免slave节点上的数据被重启的master节点清空。
同步策略
redis默认使用磁盘同步, 数据被存到RDB file文件, 之后通过同步该文件做full-sync.
但是如果磁盘太慢会导致性能不好,2.8新增直接通过socket来同步的方式.(该方式目前仍然是实验阶段)
只读复制
redis默认slave是只读的,所有写操作会报错. 通过如下方式可以打开读写
# 配置文件
slave-read-only noconfig
# redis-cli运行时
set slave-read-only no
即便是只读slave也不应该暴露在公网下. debug/config等命令仍会带来完全问题(使用rename-command配置)
读写slave在较少场景下会有用。未来redis有可能移除该特性.
认证
redis很快,所以需要设置足够强的密码,不然会很容易被破解。
master节点可以通过配置,要求所有链接需要认证
requirepass <password>
这时slave节点需要做如下配置
# 运行时
config set masterauth <password>
# 配置文件
masterauth <password>
部分同步
TODO
控制slave链接数
TODO