# 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.如果返回值沒有問題,說明配置成功.