Redis 7.X 部署指南之單機(jī)、主從、哨兵和集群部署
一、Redis簡介與部署方式概覽
Redis是一款高性能的鍵值存儲系統(tǒng),支持多種數(shù)據(jù)結(jié)構(gòu),常用于緩存、消息隊(duì)列、分布式鎖等場景。根據(jù)不同的可用性、擴(kuò)展性與性能需求,Redis提供了四種常見部署模式:
- 單機(jī)部署:適合開發(fā)、測試環(huán)境,簡單快捷。
- 主從部署:實(shí)現(xiàn)數(shù)據(jù)冗余與讀寫分離,提升讀取性能。
- 哨兵部署:在主從基礎(chǔ)上實(shí)現(xiàn)自動故障轉(zhuǎn)移,提高可用性。
- 集群部署:支持?jǐn)?shù)據(jù)分片與高可用,適合大規(guī)模、高并發(fā)場景。
下面將逐步講解每種部署方式的安裝、配置與操作。
二、環(huán)境準(zhǔn)備(通用步驟)
2.1 系統(tǒng)要求
- Linux系統(tǒng)(CentOS 7+ / Ubuntu 18.04+)
- GCC環(huán)境(Redis由C編寫)
- 網(wǎng)絡(luò)互通(集群、主從需互通)
2.2 安裝GCC
# 檢查gcc是否安裝 gcc --version # 安裝gcc yum install gcc -y # CentOS apt install gcc -y # Ubuntu
2.3 關(guān)閉防火墻(測試環(huán)境建議)
systemctl stop firewalld.service systemctl disable firewalld # 或使用firewall-cmd放行相應(yīng)端口
三、單機(jī)部署
3.1 下載與編譯
mkdir -p /opt/software/redis cd /opt/software/redis wget https://download.redis.io/redis-stable.tar.gz tar -xzf redis-stable.tar.gz cd redis-stable make install
3.2 檢查安裝
ll /usr/local/bin/redis-*
應(yīng)看到以下關(guān)鍵文件:
redis-server:服務(wù)端redis-cli:客戶端redis-sentinel:哨兵redis-benchmark:性能測試工具
3.3 配置與啟動
編輯 redis.conf:
vim redis.conf
關(guān)鍵修改:
bind * -::* # 允許所有IP連接 protected-mode no # 關(guān)閉保護(hù)模式 daemonize yes # 后臺運(yùn)行 logfile /opt/software/redis/redis-stable/redis.log dir /opt/software/redis requirepass 1qaz@WSX # 設(shè)置密碼(可選)
啟動服務(wù):
redis-server redis.conf redis-cli -a 1qaz@WSX # 帶密碼連接
3.4 常用命令
keys * # 查看所有鍵 auth 密碼 # 認(rèn)證 quit # 退出 redis-cli shutdown # 關(guān)閉服務(wù)
四、主從部署(Master-Slave)
4.1 架構(gòu)說明
- 一主多從,數(shù)據(jù)單向同步
- 主節(jié)點(diǎn)可寫,從節(jié)點(diǎn)只讀
- 故障時需人工切換主節(jié)點(diǎn)
4.2 配置從節(jié)點(diǎn)
在從節(jié)點(diǎn)的 redis.conf 中添加:
replicaof 192.168.75.129 6379 # 主節(jié)點(diǎn)IP與端口 masterauth 1qaz@WSX # 如果主節(jié)點(diǎn)有密碼
4.3 查看主從信息
在主節(jié)點(diǎn)執(zhí)行:
redis-cli -a 1qaz@WSX info replication
輸出中應(yīng)看到 connected_slaves 數(shù)量及從節(jié)點(diǎn)信息。
五、哨兵部署(Sentinel)
5.1 哨兵作用
- 監(jiān)控主從節(jié)點(diǎn)狀態(tài)
- 自動故障轉(zhuǎn)移
- 通知客戶端新主節(jié)點(diǎn)地址
5.2 哨兵配置
編輯 sentinel.conf:
protected-mode no port 26379 daemonize yes logfile /opt/software/redis/redis-stable/sentinel.log dir /opt/software/redis sentinel monitor mymaster 192.168.75.129 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 180000
5.3 啟動哨兵
redis-sentinel sentinel.conf
5.4 查看哨兵狀態(tài)
redis-cli -p 26379 info sentinel
5.5 故障模擬與恢復(fù)
- 停止主節(jié)點(diǎn)
- 觀察哨兵日志,查看新主節(jié)點(diǎn)選舉
- 重啟原主節(jié)點(diǎn),觀察是否變?yōu)閺墓?jié)點(diǎn)
六、集群部署(Cluster)
6.1 集群特點(diǎn)
- 數(shù)據(jù)分片(16384個哈希槽)
- 自動故障轉(zhuǎn)移
- 支持水平擴(kuò)展
6.2 集群配置(三主三從示例)
每臺機(jī)器配置兩個節(jié)點(diǎn)(6379主,6380從)。
配置文件示例 redis_6379.conf:
bind * -::* protected-mode no port 6379 daemonize yes cluster-enabled yes cluster-node-timeout 5000 dir /opt/software/redis/cluster appendonly yes logfile "/opt/software/redis/redis-stable/cluster/redis6379.log" cluster-config-file nodes-6379.conf
6.3 啟動所有節(jié)點(diǎn)并創(chuàng)建集群
# 啟動節(jié)點(diǎn) redis-server ./cluster/redis_6379.conf redis-server ./cluster/redis_6380.conf # 創(chuàng)建集群 redis-cli --cluster create \ --cluster-replicas 1 \ 192.168.75.129:6379 192.168.75.129:6380 \ 192.168.75.131:6379 192.168.75.131:6380 \ 192.168.75.132:6379 192.168.75.132:6380
6.4 集群常用命令
redis-cli cluster info # 集群信息 redis-cli cluster nodes # 節(jié)點(diǎn)列表 redis-cli -c # 開啟集群模式連接
6.5 故障轉(zhuǎn)移測試
停止某一主節(jié)點(diǎn),觀察其從節(jié)點(diǎn)是否自動提升為主節(jié)點(diǎn),并重新加入集群。
七、配置文件與命令匯總
7.1 核心配置文件路徑
- 單機(jī)/主從:
/opt/software/redis/redis-stable/redis.conf - 哨兵:
/opt/software/redis/redis-stable/sentinel.conf - 集群:
/opt/software/redis/redis-stable/cluster/redis_{port}.conf
7.2 常用命令速查
# 服務(wù)管理 redis-server xxx.conf redis-cli shutdown ps aux | grep redis # 集群操作 redis-cli --cluster create ... redis-cli cluster nodes redis-cli -c # 數(shù)據(jù)操作 keys * set/get/del auth 密碼 info replication
八、部署建議與注意事項(xiàng)
| 部署方式 | 適用場景 | 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|---|---|
| 單機(jī) | 開發(fā)、測試 | 簡單快捷 | 無高可用,性能受限 |
| 主從 | 讀多寫少,數(shù)據(jù)備份 | 讀寫分離,數(shù)據(jù)冗余 | 故障需人工干預(yù) |
| 哨兵 | 高可用,自動故障轉(zhuǎn)移 | 自動切換,客戶端透明 | 配置復(fù)雜,數(shù)據(jù)可能丟失 |
| 集群 | 大數(shù)據(jù)量,高并發(fā),高可用 | 數(shù)據(jù)分片,水平擴(kuò)展 | 部署復(fù)雜,運(yùn)維成本高 |
8.1 安全建議
- 生產(chǎn)環(huán)境務(wù)必設(shè)置密碼
- 使用防火墻限制訪問IP
- 定期備份RDB/AOF文件
8.2 性能調(diào)優(yōu)建議
- 根據(jù)內(nèi)存使用情況選擇合適的持久化方式
- 合理設(shè)置
maxmemory和淘汰策略 - 監(jiān)控慢查詢與內(nèi)存碎片
九、總結(jié)
Redis的部署方式多樣,選擇適合業(yè)務(wù)場景的方案至關(guān)重要:
- 學(xué)習(xí)和開發(fā)可用單機(jī)
- 小型項(xiàng)目可用主從+哨兵
- 中大型高并發(fā)系統(tǒng)推薦集群
到此這篇關(guān)于Redis 7.X 部署指南:單機(jī)、主從、哨兵、集群的文章就介紹到這了,更多相關(guān)Redis單機(jī)、主從、哨兵、集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis和Nginx實(shí)現(xiàn)限制接口請求頻率的示例
限流就是限制API訪問頻率,當(dāng)訪問頻率超過某個閾值時進(jìn)行拒絕訪問等操作,本文主要介紹了Redis和Nginx實(shí)現(xiàn)限制接口請求頻率的示例,具有一定的參考價值,感興趣的可以了解一下2024-02-02
redis和mysql同步(雙寫一致性)的實(shí)現(xiàn)
Redis 和 MySQL 的同步是現(xiàn)代應(yīng)用中常見的需求,正確的同步方案能夠提高系統(tǒng)的性能和數(shù)據(jù)一致性,本文介紹了幾種常見的同步方式,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下2025-09-09
淺析PHP分布式中Redis實(shí)現(xiàn)Session的方法
這篇文章主要介紹了PHP分布式中Redis實(shí)現(xiàn)Session的方法,文中詳細(xì)介紹了兩種方法的使用方法,并給出了測試的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧,2016-12-12

