整體配置相關參數node
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
daemonize | 是不是守護進程 | no | yes|no | 否 |
port | 端口號 | 6379 | 整數 | 否 |
loglevel | 日誌級別 | notice | debug|verbose|notice|warning | 是 |
logfile | 日誌文件名 | 空 | 自定義,建議以端口號爲名 | 否 |
unixsocket | unix套接字 | 空(不經過unix套接字來監聽) | 指定套接字文件 | 否 |
unixsocketperm | unix套接字權限 | 0 | Linux三位數權限 | 否 |
pidfile | Redis運行的進程Pid文件 | /var/run/redis.pid | /var/run/redis-{port}.pid | 否 |
lua-time-limit | Lua腳本"超時時間"(單位:毫秒) | 5000 | 整數,可是此超時不會真正中止腳本運行 | 是 |
tcp-backlog | tcp-backlog | 511 | 整數 | 否 |
watchdog-perioid | 看門狗,用於診斷Redis的延遲問題,些參數是檢查週期。此參數須要在運行時配置才能生效。 | 0 | 整數 | 是 |
activerehashing | 指定是否激活重置哈希 | yes | yes|no | 是 |
dir | 工做目錄(aof、rdb、日誌文件都存放在此目錄) | ./(當前目錄) | 自定義 | 是 |
內存相關參數
redis
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
maxmemory | 最大可用內存(單位字節) | 0(沒有限制) | 整數 | 是 |
maxmemory-policy | 內存不夠時,淘汰策略 | noeviction | volatile-lru->用lru算法刪除過時的鍵值 allkeys-lrt->用lru算法刪除全部鍵值 volatile-random->隨機刪除過時的鍵值 allkeys-random->隨機刪除任何鍵值 volatile-ttl->刪除最近要到期的鍵值 noeviction->不刪除鍵 |
是 |
maxmemory-samples | 檢測LRU採樣數 | 5 | 整數 | 是 |
AOF相關配置參數
算法
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 | |
appendonly | 是否開啓AOF持久化模式 | no | yes|no | 是 | |
appendfsync | AOF同步磁盤頻率 | everysec | always|everysec|no | 是 | |
appendfilename | AOF文件名 | appendonly.aof | appendonly-{port}.aof | 否 | |
aof-load-truncated | 加載AOF文件時,是否忽略AOF文件不完整的狀況,讓Redis正常啓動 | yes | yes|no | 是 | |
no-appendfsync-no-rewrite | 設置爲yes表示rewrite期間對新寫操做不fsync,暫時存在緩衝區,等rewrite完成後再寫入 | no | yes|no | 是 | |
auto-aof-rewrite-min-size | 觸發rewrite的AOF文件最小閥值,單位MB | 64mb | 整數+mb | 是 | |
auto-aof-rewrite-percentage | 觸發rewrite的AOF文件的增加比例條件 | 100 | 整數 | 是 | |
aof-rewrite-incremental-fsync | AOF重寫過程當中,是否採起增量文件同步策略 | yes | yes|no | 是 |
RDB相關配置參數
緩存
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 | |
save | RDB觸發條件 | save 900 1 save 300 10 save 60 10000 |
若是沒有該配置,表明不使用自動RDB策略 | 是 | |
dbfilename | RDB文件名 | dump.rdb | dump-{port}.rdb | 是 | |
rdbcompression | RDB文件是否壓縮 | yes | yes|no | 是 | |
rdbchecksum | RDB文件是否使用校驗和 | yes | yes|no | 是 | |
stop-writes-on-bgsave-error | bgsave執行錯誤,是否中止Redis接受寫請求 | yes | yes|no | 是 |
慢查詢相關配置參數安全
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
slowlog-log-slower-than | 慢查詢被記錄的閥值,單位微秒 | 10000 | 整數 | 是 |
slowlog-max-len | 最多記錄慢查詢的條數 | 128 | 整數 | 是 |
latency-monitor-threshold | Redis服務內存延遲監控 | 0(關閉) | 整數 | 是 |
數據結構優化配置服務器
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
hash-max-ziplist-entries | hash數據結構優化參數 | 512 | 整數 | 是 |
hash-max-ziplist-value | hash數據結構優化參數 | 64 | 整數 | 是 |
list-max-ziplist-entries | list數據結構優化參數 | 512 | 整數 | 是 |
list-max-ziplist-value | list數據結構優化參數 | 64 | 整數 | 是 |
set-max-insert-entries | set數據結構優化參數 | 512 | 整數 | 是 |
zset-max-ziplist-entries | zset數據結構優化參數 | 128 | 整數 | 是 |
zset-max-ziplist-value | zset數據結構優化參數 | 64 | 整數 | 是 |
hll-sparse-max-bytes | HyperLogLog數據結構優化參數 | 3000 | 整數 | 是 |
複製相關配置
數據結構
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
slaveof | 指定當前從節點複製哪一個主節點,參數:主節點ip和port | 空 | ip port | 否,但能夠用slaveof命令設置 |
repl-ping-slave-period | 主節點按期向從節點發送ping命令的週期,用於斷定從節點是否存活。單位秒 | 10 | 整數 | 是 |
repl-timeout | 主從節點複製超時時間,單位秒 | 60 | 整數 | 是 |
repl-backlog-size | 複製積壓緩存區大小 | 1M | 整數 | 是 |
repl-backlog-ttl | 主節點在沒有從節點的狀況下多長時間後釋放複製積壓緩存區空間,單位秒 | 3600 | 整數 | 是 |
slave-priority | 從節點的優先級 | 100 | 0-100 | 是 |
min-slaves-to-write | 當主節點發現從節點數據小於min-slaves-to-write且延遲小於等於min-slaves-max-lag時,master中止寫入操做 | 0 | 整數 | 是 |
min-slaves-max-lag | 10 | 整數 | 是 | |
slave-server-stale-data | 當從節點與主節點鏈接中斷時,若是此參數值設置爲yes,從節點能夠繼續處理客戶端的請求。不然除info和slaveof命令以外,拒絕所請求並統一回復「SYNC with master in progress" | yes | yes|no | 是 |
slave-read-only | 從節點是否開啓只讀模式,集羣架構下從節點默認讀寫都不可用,須要調用readonly命令開啓只讀模式 | yes | yes|no | 是 |
repl-disable-tcp-nodelay | 是否開啓主從複製socket的NO_DELAY選項: yes:Redis會合並小的TCP包來節省帶寬,但這樣會增長同步延遲,形成主從數據不一致 no:主節點會當即發送同步數據,沒有延遲 |
no | yes|no | 是 |
repl-diskless-sync | 是否開啓無盤複製 | no | yes|no | 是 |
repl-diskless-sync-delay | 開啓無盤複製後,須要延遲多少秒後進行建立RDB操做,通常用於同時加入多個節點時,保證多個從節點共享RDB | 5 | 整數 | 是 |
客戶端相關配置
架構
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
maxclients | 最大客戶端鏈接數 | 10000 | 整數 | 是 |
client-output-buffer-limit | 客戶端輸出緩衝區限制 | normal 0 0 0 slave 256mb 64mb 60 pubsub 32mb 8mb 60 |
整數 | 是 |
timeout | 客戶端閒置多少秒後關閉鏈接,單位秒 | 0(永不關閉) | 整數 | 是 |
tcp-keepalive | 檢測TCP鏈接活性的週期,單位秒 | 0(不檢測) | 整數 | 是 |
安全相關配置參數
app
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
requirepass | 密碼 | 空 | 自定義 | 是 |
bind | 綁定IP | 127.0.0.1 | 自定義 | 否 |
masterauth | 從節點須要配置的主節點密碼 | 空 | 主節點密碼 | 是 |
哨兵相關配置參數
less
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
sentinel monitor <master-name> <ip> <port> <quorum> | 定義監控的主節點名、ip、port、主觀下線票數 | sentinel monitor mymaster 127.0.0.1 6379 2 | 自定義masterName實際的ip port 票數 | 支持<quorum> |
sentinel down-after-milliseconds <master-name> <times> | sentinel斷定節點不可達的毫秒數 | sentinel down-after-milliseconds mymaster 30000 | 整數 | 支持 |
sentinel parallel-syncs <master-name> <nums> | 在執行故障轉移時,最多有多少個從服務器同時對新的主服務器進行同步 | sentinel parallel-syncs mymaster 1 | 大於0,不超過從服務器個數 | 支持 |
sentinel failover-timeout <master-name> <times> | 故障遷移超時時間 | sentinel failover-timeout mymaster 180000 | 整數 | 支持 |
sentinel auth-pass <master-name> <passwd> | 主節點密碼 | 空 | 主節點密碼 | 支持 |
sentinel notification-script <master-name> <scriptpath> | 故障轉移期間腳本通知 | 空 | 腳本文件路徑 | 支持 |
sentinel client-reconfig-script <master-name> <script-path> | 故障轉移成功後腳本通知 | 空 | 腳本文件路徑 | 支持 |
Cluster相關配置參數
配置名 | 含義 | 默認值 | 可選值 | 是否支持config set配置熱生效 |
cluster-node-time | 集羣節點超時時間,單位毫秒 | 15000 | 整數 | 是 |
cluster-migration-barrier | 主從節點切換須要的從節點數最小個數 | 1 | 整數 | 是 |
cluster-slave-validity-factor | 從節點有效性判斷因子,當從節點與主節點最後通訊時間超過(cluster-node-timeout*slave-validity-factor)+repl-ping-slave-period時,對應從節點不具有故障轉移資格,防止斷線時間過長的從節點進行故障轉移,設置爲0表示從節點永不過時 | 10 | 整數 | 是 |
cluster-require-full-coverage | 集羣是否須要全部的slot都分配給在線節點,才能正常訪問 | yes | yes|no | 是 |
cluster enabled | 是否開啓集羣模式 | no | yes|no | 否 |
cluster-config-file | 集羣配置文件名稱 | nodes.conf | nodes-{port}.conf | 否 |
本文是根據《Redis開發與運維》一書整理的關於Redis的相關配置參數,隨着Redis版本的更新,參數可能有所調整,最好的解釋仍是來自官方文檔或安裝包中redis.conf配置文件中對於參數的解釋。