# redis主从结构集群部署
## 前期准备
### 安装redis(可以跳过)
参考[oneinstack安装](https://oneinstack.com/install/),只安装redis即可,选择性安装.将所有需要部署redis的服务器都装上redis
## 主服务器部署
编辑 `/usr/local/redis/etc/redis.conf`,根据实际情况修改以下项
```
daemonize yes //守护进程
pidfile "/var/run/redis.conf.pid" //pid路径
port 6379 //监听端口
bind 0.0.0.0 //绑定地址
timeout 300 //超时时间
loglevel notice //日志级别
logfile "/data/redis/redis-server.log" //日志路径
databases 16 //实例个数
save 900 1 //900秒有1个变化写磁盘
save 300 10 //300秒有10个变化写磁盘
save 60 10000 //60秒有10000个变化写磁盘
rdbcompression yes //支持RDB压缩
dbfilename "dump.rdb" //DB文件名
dir "/data/redis/lib" //RDB路径
slave-serve-stale-data yes //如果 slave-serve-stale-data 设置成 'yes' (the default) slave会仍然响应客户端请求,此时可能会有问题。
appendonly no //AOF关闭
appendfsync everysec //每秒进行一次写磁盘
no-appendfsync-on-rewrite no //append only 文件的自动重写, 当AOF 日志文件即将增长到指定百分比时,Redis可以通过调用BGREWRITEAOF 来自动重写append only文件。
list-max-ziplist-entries 512
list-max-ziplist-value 64 //如果set中整型元素的数量不超过512时,Redis将会采用该特殊编码
set-max-intset-entries 512
activerehashing yes //指定是否激活重置哈希,默认为开启
masterauth tieweishivps //认证密码
requirepass tieweishivps
```
## 从服务器部署
编辑 `/usr/local/redis/etc/redis.conf`,根据实际情况修改以下项
```
daemonize yes //守护进程
pidfile "/var/run/redis.conf.pid" //pid路径
port 6379 //监听端口
bind 0.0.0.0 //绑定地址
timeout 300 //超时时间
loglevel notice //日志级别
logfile "/data/redis/redis-server.log" //日志路径
databases 16 //实例个数
save 900 1 //900秒有1个变化写磁盘
save 300 10 //300秒有10个变化写磁盘
save 60 10000 //60秒有10000个变化写磁盘
rdbcompression yes //支持RDB压缩
dbfilename "dump.rdb" //DB文件名
dir "/data/redis/lib" //RDB路径
slave-serve-stale-data yes //如果 slave-serve-stale-data 设置成 'yes' (the default) slave会仍然响应客户端请求,此时可能会有问题。
appendonly no //AOF关闭
appendfsync everysec //每秒进行一次写磁盘
no-appendfsync-on-rewrite no //append only 文件的自动重写, 当AOF 日志文件即将增长到指定百分比时,Redis可以通过调用BGREWRITEAOF 来自动重写append only文件。
list-max-ziplist-entries 512
list-max-ziplist-value 64 //如果set中整型元素的数量不超过512时,Redis将会采用该特殊编码
set-max-intset-entries 512
activerehashing yes //指定是否激活重置哈希,默认为开启
masterauth tieweishivps //认证密码
requirepass tieweishivps
```
最后再redis.conf文件最下面添加一行配置
```
slaveof 主服务器ip地址 主服务器端口
```
## 测试
配置完成后,启动主服务器,然后再启动从服务器.然后在主服务器执行写入语句.
```
set name "123"
```
主服务器查看写入情况
```
get name
```
然后再从服务器查看写入情况
```
get name
```
二者的返回值都应该是123.如果返回值没有问题,说明配置成功.