一、Redis 基礎概念
- 核心功能
- 內存數據庫,支持持久化(RDB/AOF)、主從復制、哨兵高可用、集群分片。
- 常用場景:緩存、分布式鎖、消息隊列、計數器、排行榜等。
- 安裝環境
- 依賴 GCC 環境(C語言編譯),需先安裝?
gcc
。 - 關閉防火墻或配置端口放行(默認端口 6379)。
- 依賴 GCC 環境(C語言編譯),需先安裝?
二、單機部署
1. 安裝步驟
# 1. 創建目錄并下載
mkdir -p /opt/software/redis
cd /opt/software/redis
wget https://download.redis.io/redis-stable.tar.gz# 2. 解壓并編譯安裝
tar -xzf redis-stable.tar.gz
cd redis-stable
make install # 生成可執行文件到 /usr/local/bin# 3. 驗證安裝
ll /usr/local/bin | grep redis # 檢查是否生成 redis-server、redis-cli 等工具
2. 配置與啟動
- 配置文件:修改?
redis.conf
?(路徑:/opt/software/redis/redis-stable
)
bind * -::* # 允許所有IP連接
daemonize yes # 后臺運行
logfile "redis.log" # 日志路徑
dir "/opt/software/redis" # 工作目錄
requirepass "1qaz@WSX" # 設置密碼(可選)
protected-mode no # 關閉保護模式(允許遠程連接)
- 啟動與連接
redis-server redis.conf # 啟動服務
redis-cli -a 1qaz@WSX # 帶密碼連接客戶端
三、主從部署(Master-Slave)
1. 核心概念
- 單向復制:主節點(Master)寫入,從節點(Slave)只讀,數據自動同步。
- 作用:數據冗余、讀寫分離、故障恢復基礎。
2. 配置步驟(從節點)
# 修改從節點 redis.conf
replicaof <master_ip> <master_port> # 示例:replicaof 192.168.75.129 6379
requirepass "1qaz@WSX" # 主節點密碼(若有)
replica-read-only yes # 從節點只讀
3. 驗證
# 主節點查看從節點信息
redis-cli info replication # 輸出中包含 slave0 信息(ip、端口、狀態)# 從節點查看角色
redis-cli info replication | grep role:slave
四、哨兵部署(Sentinel)
1. 核心功能
- 自動故障轉移:監控主從節點,主節點故障時自動選舉新主節點。
- 集群模式:多個哨兵節點協同工作,避免單點故障。
2. 配置步驟
- 創建哨兵配置文件(
sentinel.conf
)
protected-mode no # 關閉保護模式
daemonize yes # 后臺運行
port 26379 # 哨兵端口
logfile "sentinel.log" # 日志路徑
dir "/opt/software/redis"# 監控主節點(mymaster 為主節點名稱,2 為法定人數)
sentinel monitor mymaster 192.168.75.129 6379 2
sentinel down-after-milliseconds mymaster 30000 # 主節點超時時間(30秒)
sentinel failover-timeout mymaster 180000 # 故障轉移超時時間(180秒)
- 啟動哨兵
redis-sentinel sentinel.conf # 或 redis-server sentinel.conf --sentinel
3. 故障模擬
# 停止主節點服務
redis-cli shutdown -p 6379# 查看哨兵日志,確認新主節點選舉
tail -f sentinel.log# 驗證新主節點
redis-cli -p 6379 info replication | grep role:master
五、集群部署(Cluster)
1. 核心概念
- 分片存儲:數據通過哈希槽(16384個)分布在多個主節點,突破單機內存限制。
- 高可用性:每個主節點配備從節點,支持自動故障轉移。
2. 配置準備(三主三從)
- 節點規劃
節點角色 | IP | 端口 |
主節點 | 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 |
- 配置文件(以 6379 主節點為例)
cluster-enabled yes # 開啟集群模式
cluster-node-timeout 5000 # 節點超時時間(5秒)
cluster-config-file nodes-6379.conf # 集群配置文件(自動生成)
port 6379
appendonly yes # 開啟AOF持久化
3. 啟動與初始化集群
# 啟動所有節點
for port in 6379 6380; doredis-server ./cluster/redis_${port}.conf
done# 創建集群(--cluster-replicas 1 表示每個主節點配1個從節點)
redis-cli --cluster create \192.168.75.129:6379 192.168.75.131:6379 192.168.75.132:6379 \192.168.75.129:6380 192.168.75.131:6380 192.168.75.132:6380 \--cluster-replicas 1
4. 數據讀寫
# 連接集群(-c 開啟自動路由)
redis-cli -c -p 6379# 寫入數據(自動路由到目標節點)
set key1 value1 # 若鍵屬于其他節點,返回 MOVED 錯誤并提示目標節點
六、關鍵配置文件路徑
部署模式 | 配置文件路徑 | 說明 |
單機 |
| 單機配置 |
主從 | 從節點? | 主節點無需修改 |
哨兵 |
| 哨兵集群配置 |
集群 |
| 每個節點獨立配置文件 |
七、常用命令匯總
操作類型 | 命令示例 | 說明 |
啟動服務 |
| 帶配置文件啟動 |
連接客戶端 |
| 連接 Redis 實例 |
查看狀態 |
| 查看服務器狀態(如? |
關閉服務 |
| 安全關閉 Redis 實例 |
集群管理 |
| 集群創建、信息查詢、節點列表 |
八、注意事項
- 端口沖突:確保各節點端口未被占用(主節點默認 6379,哨兵默認 26379)。
- 防火墻設置:開放所有節點端口(
6379
、6380
、26379
?等)。 - 配置持久化:生產環境建議同時開啟 RDB 和 AOF,避免數據丟失。
- 監控工具:使用?
redis-cli monitor
、info
?命令或第三方工具(如 Prometheus)監控集群狀態。