準備工作
- redis
- gcc
- 主從配置規劃
ip | 角色 |
---|---|
192.198.75.136 | master |
192.168.75.137 | slave |
192.168.75.138 | slave |
開始部署
- 官網下載redis源碼
- 解壓redis安裝包,進入目錄
tar -zxvf redis-5.0.8
cd redis-5.0.8
- 編譯安裝到指定位置
# 如果安裝失敗,選擇root用戶重試
make PREFIX=/opt/module/redis-5.0.8 install
- 複製配置文件到安裝目錄
# redis配置文件
cp redis.conf /opt/module/redis-5.0.8/
# 哨兵模式配置文件
cp sentinel.conf /opt/module/redis-5.0.8/
啓動redis
./redis-server
常用配置項
配置項 | 默認值 | 描述 |
---|---|---|
daemonize | no | 使用 yes 啓用守護進程 |
pidfile | /var/run/redis_6379.pid | 守護進程方式啓動時,pid寫入的文件 |
bind | 127.0.0.1 | 綁定的主機地址,不設置則允許所有連接 |
port | 6379 | 端口號 |
logfile | 守護進程方式啓動時,日誌保存的目錄,默認爲標準輸出 | |
loglevel | notice | 日誌等級,可能的值 debug verbose notice warning |
save | 900 1 , 300 10 , 60 10000 | 指定在多長時間內,有多少次更新操作,就將數據同步到數據文件 |
dbfilename | dump.rdb | RDB文件名稱 |
dir | ./ | AOF、RDB文件保存目錄 |
rdbcompression | yes | RDB存儲時,是否壓縮數據 |
stop-writes-on-bgsave-error | yes | 生成RDB文件出錯時,是否停止redis寫命令 |
rdbchecksum | yes | 是否校驗RDB文件 |
appendonly | no | 是否在每次更新操作後進行日誌記錄,可以理解爲打開AOF功能 |
appendfilename | appendonly.aof | AOF文件名 |
appendfsync | everysec | 同步頻率,可能的值 always everysec no ,alway:sredis執行每個寫命令時,都同步寫入硬盤,everysec :每秒執行一次 , no :讓操作系統來決定何時進行同步 |
auto-aof-rewrite-percentage | 100 | 當AOF文件以指定的百分比增加時,自動重寫AOF文件,指定0,禁用自動重寫 |
auto-aof-rewrite-min-size | 64MB | 和auto-aof-rewrite-percentage配合使用 |
no-appendfsync-on-rewrite | no | AOF自動重寫時,阻塞主進程 |
timeout | 0 | 當客戶端閒置多長秒後關閉連接,如果指定爲 0 ,表示關閉該功能 |
maxclients | 同一時間最大客戶端連接數 | |
protected-mode | yes | 安全模式 啓動條件有2個, bind沒有綁定ip地址 , 沒有設置登錄密碼 |
主從配置
由於redis3.2版本增加了安全模式,所以我們需要設置登錄密碼,或者直接關閉安全模式(不推薦)
# 關閉安全模式
protected-mode no
ps:關閉後無需下列配置
- master 配置文件修改如下
bind 192.168.75.136
# 設置登錄密碼
requirepass admin123456
- salve 配置文件修改如下
# 192.168.75.137的配置文件
bind 192.168.75.137
# 設置master的登錄密碼
masterauth admin123456
# 指定master的地址端口
slaveof 192.168.75.136 6379
# 192.168.75.138的配置文件
bind 192.168.75.138
# 設置master的登錄密碼
masterauth admin123456
# 指定master的地址端口
slaveof 192.168.75.136 6379
- 配置完成後依次啓動服務
- 登錄客戶端查看配置是否成功
# 如果配置了密碼,先執行鑑權命令,否則跳過
auth admin123456
# 查看節點信息
info replication
- 手動故障轉移
# 模擬主節點故障
kill -9 14898
# 設置192.168.75.137爲主節點
bin/redis-cli -h 192.168.75.137 -p 6379 slaveof no one
#192.168.75.138配置重新連接到新的master
slaveof 192.168.75.137 6379
- 自動故障轉移(哨兵模式)
修改配置文件sentinel.conf
配置項 | 默認值 | 描述 |
---|---|---|
daemonize | no | 使用 yes 啓用守護進程 |
port | 26379 | 端口號 |
pidfile | /var/run/redis-sentinel.pid | pid文件位置 |
logfile | 日誌文件位置 | |
dir | /tmp | 緩存文件目錄 |
sentinel monitor | mymaster 127.0.0.1 6379 2 | mymaster :名字自定義, ip:主節點所在ip ,port:主節點所在端口 , 1 代表當一個哨兵認爲不可用時,就執行故障轉移,可以配置多個哨兵 |
sentinel auth-pass | 安全模式下需要使用的登錄密碼 master-name 等於sentinel monitor參數定義的名字 |
- 啓動哨兵
bin/redis-sentinel sentinel.conf
啓動後常見的警告
- 沒有指定配置文件
解決方法:啓動時,指定配置文件
./redis-server redis.conf