優點:
極致性能:?基于內存操作和高效的單線程 I/O 模型,讀寫速度極快。
數據結構豐富:?支持多種數據結構,如 String、Hash、List、Set、ZSet、Stream、Geo 等,編程模型靈活。
持久化與高可用:?提供 RDB?(定時對整個數據集做快照)和 AOF(記錄每一次寫操作命令)?持久化機制,并通過 Redis Sentinel 和 Redis Cluster 提供主從切換和集群分片解決方案。
功能多樣:?支持鍵過期、事務、發布訂閱、Lua 腳本、流水線等技術特性,應用場景廣泛。
缺點:
內存成本高:?數據存儲在內存中,容量受硬件內存大小限制,大容量集群成本較高。
持久化與復制瓶頸:?RDB 持久化?
fork
?可能阻塞主線程,主從復制在首次全量同步時會產生大量網絡和 I/O 開銷。啟動恢復慢:?數據量大時,重啟后加載數據到內存的過程耗時較長,期間服務不可用。
CPU 瓶頸:?單線程模型下,復雜的 O(N) 命令或大 Key 操作會阻塞后續請求。
分布式一致性:?集群模式在故障切換時存在數據弱一致性問題,可能丟失極少量數據。