redis資料庫配置參數詳細介紹

來源:互聯網
上載者:User

redis配置參數,非常的多,下面羅列了一些redis 常用參數配置,以及中文注釋。


/********************************* GENERAL *********************************/ 
// 是否作為守護進程運行 
daemonize yes  
 
// 如以後台進程運行,則需指定一個pid,預設為/var/run/redis.pid 
// pidfile /var/run/redis.pid  
 
// Redis預設監聽連接埠 
// port 6379  
 
tcp-backlog 511  
 
// 用戶端閑置多少秒後,中斷連線 
timeout 0  
 
tcp-keepalive 0  
 
// 日誌記錄等級,有4個可選值,debug,verbose,notice,warning 
loglevel notice  
 
// 指定日誌輸出的檔案名稱,可設為/dev/null屏蔽日誌 
// logfile ""  
 
// 可用資料庫數,預設值為16,預設資料庫為0 
databases 16  
 
/****************************** SNAPSHOTTING 快照 *********************************/ 
// 儲存資料到disk的策略 
// 900 秒有 1 條改變儲存到disk 
save 900 1 
// 300 秒有 10 條改變儲存到disk 
save 300 10 
// 60 秒有 10000 條改變儲存到disk 
save 60 10000  
 
stop-writes-on-bgsave-error yes  
 
// 當dump .rdb資料庫的時候是否壓縮資料對象 
rdbcompression yes  
 
rdbchecksum yes  
 
// 本機資料庫檔案名稱,預設值為dump.rdb 
// dbfilename dump.rdb  
 
// 本機資料庫存放路徑,預設值為 ./ 
// dir ./  
 
/*************************** REPLICATION Redis的複製配置 *********************************/  
 
// 當本機為從服務時,設定主服務的IP及連接埠 
// slaveof <masterip> <masterport>  
 
// 當本機為從服務時,設定主服務的串連密碼 
// masterauth <master-password>  
 
// 當從庫同主機失去串連或者複製進行中,從機庫有兩種運行方式 
// 1) 如果slave-serve-stale-data設定為yes(預設設定),從庫會繼續相應用戶端的請求 
// 2) 如果slave-serve-stale-data是指為no,出去INFO和SLAVOF命令之外的任何請求都會返回一個錯誤"SYNC with master in progress" 
slave-serve-stale-data yes  
 
slave-read-only yes  
 
repl-diskless-sync no  
 
repl-diskless-sync-delay 5  
 
// 從庫會按照一個時間間隔向主庫發送PINGs.可以通過repl-ping-slave-period設定這個時間間隔,預設是10秒 
repl-ping-slave-period 10  
 
// repl-timeout 設定主庫批量資料轉送時間或者ping回複時間間隔,預設值是60秒 
// 一定要確保repl-timeout大於repl-ping-slave-period 
repl-timeout 60  
 
// 採用無延遲同步 預設no 
repl-disable-tcp-nodelay yes  
 
slave-priority 100  
 
/********************************* SECURITY 安全 *********************************/  
 
// 設定用戶端串連後進行任何其他指定前需要使用的密碼。 
// 警告:因為redis速度相當快,所以在一台比較好的伺服器下,一個外部的使用者可以在一秒鐘進行150K次的密碼嘗試, 
這意味著你需要指定非常非常強大的密碼來防止暴力破解 
// requirepass foobared  
 
// 命令重新命名. 
// 在一個共用環境下可以重新命名相對危險的命令。比如把CONFIG重名為一個不容易猜測的字元。 
// 舉例: 
// rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 
// 如果想刪除一個命令,直接把它重新命名為一個Null 字元""即可,如下: 
// rename-command CONFIG ""  
 
/********************************* LIMITS 約束 *********************************/ 
// 最大可用記憶體 maxmemory <bytes> 536870912,即512M 
maxmemory 536870912  
 
// 當記憶體達到最大值的時候Redis會選擇刪除哪些資料?有五種方式可供選擇 
// 
// volatile-lru -> 利用LRU演算法移除設定過到期時間的key (LRU:最近使用 Least Recently Used ) 
// allkeys-lru -> 利用LRU演算法移除任何key 
// volatile-random -> 移除設定過到期時間的隨機key 
// allkeys->random -> remove a random key, any key 
// volatile-ttl -> 移除即將到期的key(minor TTL) 
// noeviction -> 不移除任何可以,只是返回一個寫錯誤 
maxmemory-policy allkeys-lru  
 
// LRU 和 minimal TTL 演算法都不是精準的演算法,但是相對精確的演算法(為了節省記憶體),隨意你可以選擇樣本大小進行檢測。 
// Redis預設的灰選擇3個樣本進行檢測,你可以通過maxmemory-samples進行設定 
maxmemory-samples 3  
 
/********************************* APPEND ONLY MODE *********************************/  
 
// 啟用aof持久化方式 
// 因為redis本身同步資料檔案是按上面save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中。預設值為no 
appendonly yes  
 
// 更新記錄檔名,預設值為appendonly.aof 
// appendfilename "appendonly.aof"  
 
// 收到寫命令立即寫入磁碟,最慢,保證完全的持久化 
// appendfsync always 
// 每秒寫入一次 
appendfsync everysec 
// 完全依賴OS,效能最好,持久化沒保證 
// appendfsync no  
 
// 部署在同一機器的redis執行個體,把auto-aof-rewrite開啟,因為cluster環境下記憶體佔用基本一致 
#關閉在aof rewrite的時候對新的寫操作進行fsync 
no-appendfsync-on-rewrite yes  
 
// Automatic rewrite of the append only file. 
// AOF 自動重寫 
// 當AOF檔案增長到一定大小的時候Redis能夠調用 BGREWRITEAOF 對記錄檔進行重寫 
// 
// 它是這樣工作的:Redis會記住上次進行些日誌後檔案的大小(如果從開機以來還沒進行過重寫,那日子大小在開機的時候確定) 
// 
// 基礎大小會同現在的大小進行比較。如果現在的大小比基礎大小大制定的百分比,重寫功能將啟動 
// 同時需要指定一個最小大小用於AOF重寫,這個用於阻止即使檔案很小但是增長幅度很大也去重寫AOF檔案的情況 
// 設定 percentage 為0就關閉這個特性 
auto-aof-rewrite-percentage 100 
auto-aof-rewrite-min-size 64mb  
 
aof-load-truncated yes  
 
/********************************* LUA SCRIPTING *********************************/ 
lua-time-limit 5000  
 
/********************************* REDIS CLUSTER 叢集*********************************/ 
// 開啟redis叢集 
cluster-enabled yes  
 
// cluster設定檔(啟動自動產生) 
// cluster-config-file nodes-6379.conf  
 
// 節點互連逾時的閥值 
// cluster-node-timeout 15000  
 
// 
// cluster-slave-validity-factor 10  
 
// 
// cluster-migration-barrier 1  
 
// 叢集相容部分失敗 
// cluster-require-full-coverage yes  
 
/********************************* SLOW LOG *********************************/ 
 
// Redis Slow Log 記錄超過特定執行時間的命令。執行時間不包括I/O計算比如串連用戶端,返回結果等,只是命令執行時間 
// 
// 可以通過兩個參數設定slow log:一個是告訴Redis執行超過多少時間被記錄的參數slowlog-log-slower-than(微妙), 
// 另一個是slow log 的長度。當一個新命令被記錄的時候最早的命令將被從隊列中移除  
 
// 下面的時間以微妙微單位,因此1000000代表一分鐘。 
// 注意制定一個負數將關閉慢日誌,而設定為0將強制每個命令都會記錄 
slowlog-log-slower-than 10000  
 
// 對日誌長度沒有限制,只是要注意它會消耗記憶體 
// 可以通過 SLOWLOG RESET 回收被慢日誌消耗的記憶體 
slowlog-max-len 128  
 
/********************************* LATENCY MONITOR *********************************/  
 
latency-monitor-threshold 0  
 
/********************************* EVENT NOTIFICATION *********************************/ 
 
notify-keyspace-events ""  
 
/********************************* ADVANCED CONFIG *********************************/  
 
// 當hash中包含超過指定元素個數並且最大的元素沒有超過臨界時, 
// hash將以一種特殊的編碼方式(大大減少記憶體使用量)來儲存,這裡可以設定這兩個臨界值 
// Redis Hash對應Value內部實際就是一個HashMap,實際這裡會有2種不同實現, 
// 這個Hash的成員比較少時Redis為了節省記憶體會採用類似一維數組的方式來緊湊儲存, 
而不會採用真正的HashMap結構,對應的value redisObject的encoding為zipmap,  
 
// 當成員數量增大時會自動轉成真正的HashMap,此時encoding為ht。  
 
hash-max-ziplist-entries 512 
hash-max-ziplist-value 64  
 
// list資料類型多少節點以下會採用去指標的緊湊儲存格式。 
// list資料類型節點值大小小於多少位元組會採用緊湊儲存格式。 
list-max-ziplist-entries 512 
list-max-ziplist-value 64  
 
// set資料類型內部資料如果全部是數值型,且包含多少節點以下會採用緊湊格式儲存。 
set-max-intset-entries 512  
 
// zsort資料類型多少節點以下會採用去指標的緊湊儲存格式。 
// zsort資料類型節點值大小小於多少位元組會採用緊湊儲存格式。 
zset-max-ziplist-entries 128 
zset-max-ziplist-value 64  
 
hll-sparse-max-bytes 3000  
 
// Redis將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash,可以降低記憶體的使用 
// 
// 當你的使用情境中,有非常嚴格的即時性需要,不能夠接受Redis時不時的對請求有2毫秒的延遲的話,把這項配置為no。 
// 
// 如果沒有這麼嚴格的即時性要求,可以設定為yes,以便能夠儘可能快的釋放記憶體 
activerehashing yes  
 
client-output-buffer-limit normal 0 0 0 
client-output-buffer-limit slave 256mb 64mb 60 
client-output-buffer-limit pubsub 32mb 8mb 60  
 
hz 10  
 
aof-rewrite-incremental-fsync yes  
 
/********************************* VM *********************************/ 
 
// 是否使用虛擬記憶體,預設值為no 
vm-enabled yes 
 
// 虛擬記憶體檔案路徑,預設值為/tmp/redis.swap,不可多個Redis執行個體共用 
vm-swap-file /tmp/redis.swap 
 
// 將所有大於vm-max-memory的資料存入虛擬記憶體,無論vm-max-memory設定多小,所有索引資料都是記憶體儲存的 
(Redis的索引資料就是keys),也就是說,當vm-max-memory設定為0的時候,其實是所有value都存在於磁碟。預設值為0。 
vm-max-memory 0 
 
// 虛擬記憶體檔案以Block Storage,每塊32bytes 
vm-page-size 32 
 
// 虛擬內在檔案的最大數 
vm-pages 134217728 
 
// 可以設定訪問swap檔案的線程數,設定最好不要超過機器的核心數,如果設定為0,那麼所有對swap檔案的操作都是串列的. 
可能會造成比較長時間的延遲,但是對資料完整性有很好的保證. 
vm-max-threads 4 
 
/********************************* INCLUDES *********************************/ 
// 包含通用配置 
include /etc/redis/redis-common.conf  
 
/********************************* GENERAL *********************************/ 
// 如以後台進程運行,則需指定一個pid,預設為/var/run/redis.pid 
pidfile /var/run/redis_6379.pid  
 
// Redis預設監聽連接埠 
port 6379  
 
// 指定日誌輸出的檔案名稱,可設為/dev/null屏蔽日誌 
logfile /var/log/redis_6379.log  
 
/********************************* SNAPSHOTTING 快照 *********************************/  
 
// 本機資料庫檔案名稱,預設值為dump.rdb 
dbfilename dump6379.rdb  
 
// 本機資料庫存放路徑,預設值為 ./ 
dir /var/redis/6379  
 
/********************************* REPLICATION Redis的複製配置 *********************************/  
 
// 當本機為從服務時,設定主服務的IP及連接埠 
// slaveof <masterip> <masterport>  
 
// 當本機為從服務時,設定主服務的串連密碼 
// masterauth <master-password>  
 
/********************************* APPEND ONLY MODE *********************************/  
 
// 更新記錄檔名,預設值為appendonly.aof 
appendfilename "appendonly6379.aof"  
 
/********************************* REDIS CLUSTER 叢集 *********************************/ 
 
// cluster設定檔(啟動自動產生) 
cluster-config-file nodes-6379.conf 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.