Academy Central
----
Weather

Redis Success Program 講義

一、計畫概述

Redis Success Program 旨在提供速度、簡單性與成功保障,協助客戶自第一天起建立高效能團隊。

1. 核心支援團隊

  • 客戶成功工程師 (CSE):主責上線(Onboarding)、疑難排解與最佳實務分享。
  • 24/7 支援服務:處理緊急與突發問題。
  • 技術客戶經理 (TAM):針對大型帳戶,提供主動式架構稽核、效能調校與擴展規劃。
  • 客戶成功經理 (CSM):聚焦業務對齊,確保 Redis 環境符合業務藍圖並展現投資價值。

2. 專業服務 (Professional Services)

針對較複雜需求,Redis 提供架構稽核、遷移協助、效能優化與客製化培訓


二、生產就緒檢查清單 (Production Readiness Checklist)

正式上線前,建議依下列六大類別完成檢核:

類別準備就緒標準
安全性 (Security)具備身分驗證、TLS 加密通訊、網路隔離、靜態加密與集中式稽核日誌。
可觀測性 (Observability)配置監控與告警、日誌集中化、具備視覺化儀表板(如 Grafana)。
架構 (Architecture)環境設定正確、具高可用性(HA)拓撲、持久化設定完成並已規劃容量。
效能 (Performance)完成基準與壓力測試、設定已優化、延遲最小化並有明確擴展策略。
高可用性 (HA)已測試複製與容錯移轉、備份自動化且已驗證、完成多可用區(Multi-AZ)部署。
客戶端整合 (Client Integration)正確設定連線池、實作重試邏輯與錯誤處理、啟用客戶端快取。

三、安裝、升級與基礎設施

1. 安裝注意事項

  • Ubuntu 連接埠衝突:安裝時須停用或重新設定 systemd-resolved,因其與 Redis Enterprise 皆使用 53 號連接埠(DNS)。
  • 安裝腳本:使用 install.sh,可搭配 -y 參數以利自動化。
  • 環境需求:確認核心參數(kernel parameters)、檔案描述子限制與磁碟空間符合建議值。

2. 升級策略(零停機)

  • 滾動升級 (Rolling Upgrade):一次僅更新一個節點,於處理下一節點前驗證目前節點與分片狀態。
  • Replace Node Method:暫時移除節點,升級後再加入。
  • Extra Node Method:加入新版本節點後再移除舊節點(需額外資源)。

3. 安全與可觀測性

  • RBAC / ACL:以角色為基礎的存取控制管理使用者權限。
  • 網路:將 Redis 部署於受信任網路,限制防火牆存取,建議使用 VPC Peering 進行私密連線。
  • RED 指標Requests(流量、快取命中率)、Errors(失敗指令、逾時、逐出率)、Duration(P50 / P95 / P99 延遲)。

四、開發者最佳實務與反模式

1. 資料結構選擇

  • Hashes:儲存扁平物件時較 Strings 節省記憶體。
  • JSON:深層巢狀結構建議使用 RedisJSON,以支援原子化局部更新。
  • Sorted Sets:排行榜或依分數範圍查詢。
  • HyperLogLog:大量資料的基數估計(如不重複訪客數),標準誤差約 0.81%。

2. 應避免的反模式 (Anti-patterns)

  • 勿在生產環境使用 KEYS:會阻塞服務,請改用 SCAN 進行增量掃描。
  • 大鍵 (Big Keys):單一鍵過大(如 >1GB 或單一分片 >25GB、>25,000 OPS)會導致延遲,應拆成多個小鍵。
  • 熱鍵 (Hot Keys):透過分片或客戶端快取分散熱點負載。
  • 為快取設定 TTL:避免記憶體耗盡。

五、災難恢復 (DR) 與持久化

複製 (Replication) 不等同於災難恢復:人為刪除或資料損壞會同步至副本。

  • 持久化模式:建議採用 Hybrid(混合)模式,結合 RDB 的快速啟動與 AOF 的資料完整性。
  • 備份與還原:備份應存放於遠端(如 S3、GCS),並定期在非生產環境驗證還原流程
  • 高可用性:部署奇數節點(至少 3 個)與奇數可用區,以維持法定人數 (Quorum)。

六、運維工具與就緒評估流程

1. 管理工具

  • rladmin:Redis Enterprise 命令列管理工具,可查詢狀態(rladmin status extra all)或手動觸發分片移轉(rladmin failover shard)。
  • 支援包 (Support Package):透過 log_collector 或 UI 產生含日誌、設定與統計的壓縮檔,供支援團隊診斷。

2. 完成檢查清單的流程

  1. 學習 (Learn):理解各項要求與架構背景。
  2. 脈絡化 (Contextualize):將項目對應至實際叢集與元件。
  3. 負責 (Own):指派負責人與截止日期。
  4. 實作 (Implement):以基礎設施即程式碼 (IaC) 或腳本完成設定並測試。
  5. 提供證據 (Evidence):附上架構圖、測試日誌或監控截圖。
  6. 評分 (Score):自 A(已自動化/已測試)D(高風險/缺失)安全性與 HA 的缺失通常視為上線阻礙 (Blockers)