gcc make
依賴)或YUM倉庫安裝(sudo yum install epel-release && sudo yum install redis
)。/etc/redis.conf
(源碼安裝可能為/etc/redis/6379.conf
),修改前備份原文件。maxmemory
參數設置Redis最大內存(如maxmemory 4gb
),避免內存耗盡導致系統崩潰。需預留20%-30%內存供系統和其他進程使用。maxmemory-policy
設置內存不足時的淘汰規則,常用策略:
volatile-lru
:從設置了過期時間的鍵中淘汰最近最少使用的(適合有過期時間的場景);allkeys-lru
:從所有鍵中淘汰最近最少使用的(適合無過期時間或需要全局淘汰的場景);volatile-ttl
:從設置了過期時間的鍵中淘汰剩余時間最短的(適合優先清理即將過期的數據)。save
指令設置快照頻率(如save 900 1
表示900秒內至少1個key變化則觸發快照),可根據業務需求調整頻率(如降低頻率減少磁盤I/O)。關閉不必要的快照(如save ""
)可提升性能,但會失去持久化能力。appendonly yes
;appendfsync everysec
(折中方案,每秒同步一次,兼顧性能與數據安全性);appendfilename "appendonly.aof"
,開啟aof-rewrite-incremental-fsync
(增量同步減少大文件寫入壓力)。aof-use-rdb-preamble yes
),結合RDB的高速快照與AOF的增量操作,提升恢復速度。tcp-backlog
(如tcp-backlog 511
),提高Redis處理并發連接請求的能力;tcp-nodelay
(tcp-nodelay yes
),禁用Nagle算法,減少網絡延遲;tcp-keepalive
(如tcp-keepalive 300
),保持連接活躍,避免因長時間空閑被防火墻斷開。ulimit -n 65535
,并在/etc/security/limits.conf
中添加redis soft nofile 65535
、redis hard nofile 65535
;sysctl -w net.core.somaxconn=4096
(增大連接隊列長度)、net.ipv4.tcp_max_syn_backlog=4096
(增大SYN隊列長度),避免連接堆積。Hash
存儲對象比用多個String
更節省內存;用Sorted Set
實現排行榜比用List
更高效)。pipeline.set(key1, value1); pipeline.set(key2, value2)
),減少網絡往返次數,提升吞吐量(實測可提升5-10倍性能)。KEYS *
(會遍歷所有鍵,阻塞Redis),改用SCAN
命令(增量遍歷,不會阻塞)。maxclients
參數設置最大客戶端連接數(如maxclients 10000
),避免過多連接消耗資源。INFO
命令查看Redis狀態(如INFO memory
查看內存使用、INFO stats
查看命令統計、INFO persistence
查看持久化情況),定期分析性能瓶頸。slowlog-log-slower-than 10000
,單位微秒;slowlog-max-len 128
,最大長度),定位執行慢的命令(如SLOWLOG get 10
查看最近10條慢查詢)。