redis資料庫參數設定檔詳解

來源:互聯網
上載者:User

# Redis 設定檔

# 當配置中需要配置記憶體大小時,可以使用 1k, 5GB, 4M 等類似的格式,其轉換方式如下(不區分大小寫)
#
# 1k =>
1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb =>
1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024
bytes
#
# 記憶體配置大小寫是一樣的.比如 1gb 1Gb 1GB 1gB

# daemonize no 預設情況下,redis不是在後台啟動並執行,如果需要在後台運行,把該項的值更改為yes
daemonize
yes

預設參數

 代碼如下 複製代碼

361way@ubuntu ~$ egrep -v '(^#|^$)' redis.conf
####################基本配置部分###########################
daemonize yes
#是否在後台運行
pidfile /var/run/redis/redis-server.pid
#運行時redis的pid檔案存放的路徑
port 6379
#redis監聽的連接埠
bind 127.0.0.1
#監聽地址
timeout 0
#設定用戶端串連時的逾時時間,單位為秒。當用戶端在這段時間內沒有發出任何指令,那麼server端關閉該串連。0為永不逾時
tcp-keepalive 0
loglevel notice
logfile /var/log/redis/redis-server.log
#記錄檔存放的路徑
databases 16
#################Snapshotting配置##########################
save 900 1    #900秒之內有1個keys發生變化時
save 300 10   #300秒之內有10個keys發生變化時
save 60 10000 #60秒之內有1萬個keys發生變化時
stop-writes-on-bgsave-error yes
#是否啟用停止寫在save出錯的時候
rdbcompression yes
#是否啟用rdb檔案壓縮手段,預設為yes 。壓縮需要額外的cpu開支,不過這能夠有效減小rdb檔案的大小,有利於儲存/備份/傳輸/資料恢複。
rdbchecksum yes
#是否對rdb檔案使用CRC64校正和,預設為”yes”,那麼每個rdb檔案內容的末尾都會追加CRC校正和。
#對於其他第三方校正工具,可以很方便的檢測檔案的完整性 。
dbfilename dump.rdb
#指定rdb檔案的名稱
dir /var/lib/redis
#指定rdb/AOF檔案的目錄位置,只能為檔案夾不能為檔案
####################### Replication ##########################
slave-serve-stale-data yes
#如果當前server是slave,那麼當slave與master失去通訊時,是否繼續為用戶端提供服務,”yes”表示繼續,”no”表示終止。
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
#更新記錄檔名,預設值為appendonly.aof
appendfsync everysec
#no表示讓作業系統(OS)進行資料緩衝同步到磁碟(執行快),always表示每次更新操作後調用fsync()將資料寫到磁碟(最安全),everysec表示每秒同步一次。
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
#如果達到64M的百分之百就停止寫入
lua-time-limit 5000
#執行一個LUA指令碼時的最大時間,防止死迴圈等等,設定為0是沒有限制,單位為秒
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
#redis 2.0後引入了 hash 資料結構,hash 中包含超過指定元素個數並且最大的元素當沒有超過臨界時,hash 將以zipmap來儲存。
#zipmap又稱為 small hash,可大大減少記憶體的使用
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
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
#一個任務可以使用的cpu數目
aof-rewrite-incremental-fsync yes
tcp-keepalive:指定TCP串連是否為長串連,”偵探”訊號由server端維護,長串連將會額外的增加server端的開支
#預設為0.表示禁用,非0值表示開啟”長串連”;”偵探”訊號的發送間隔將有linux系統決定。在多次”偵探”後,如果對等端仍不回複,將會關閉串連,否則串連將會被保持開啟。

loglevel:server記錄層級,合法值:debug,verbose,notice,warning 預設為notice 。

debug適合開發環境,用戶端操作資訊都會輸出日誌
verbose輸出一些相對有用的資訊,目前效果不明
notice適合生產環境
warning異常資訊
databases:設定redis所允許的最大”db簇”的個數,預設為16個簇。用戶端可以通過”select”指令指定需要使用的”db簇”索引號,預設為0。 redis的頂層資料結構中,所有K-V都潛在的包括了”db簇”索引號,任何一個key都將隸屬於一個”db”。 任何對資料的檢索,只會覆蓋指定的”db”;例如資料被插入到”db10″中,那麼在”db 1″中去get,將會返回null。 對資料歸類到不同的db簇中,可以協助我們實現一些特定的需求,比如根據不同用戶端串連,來指定不同的db索引號。

save <seconds> <changes>:在多少秒期間至少多少個變更操作”觸發snapshot,snapshot最終將產生新的dump.rdb檔案 。 設定 Redis 進行資料庫鏡像的頻率。儲存資料到disk的策略 。save " "用來禁用snapshot功能。

appendonly:是否在每次更新操作後進行日誌記錄,如果不開啟,可能會在斷電時導致一段時間內的資料丟失。因為redis本身同步資料檔案是按上面save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中,預設值為no。

開啟append only 模式後,redis 將每一次寫操作請求都追加到appendonly.aof 檔案中,redis重新啟動時,會從該檔案恢複出之前的狀態。但可能會造成 appendonly.aof 檔案過大,所以redis支援BGREWRITEAOF 指令,對appendonly.aof重新整理。

其他參數:

maxclients 10000 :用戶端連結的最大數量

slaveof <master ip> <master port>: 將當前server做為slave,並為其指定master資訊

requirepass 密碼:當前server的授權密碼

masterauth <master password> :以認證的方式串連到master。 如果master中使用了”密碼保護”,slave必須交付正確的授權密碼,才能串連成功。此配置項中<master password>值需要和master機器的”requirepass”保持一致。

vm-enabled yes :redis 是一個記憶體資料庫,當記憶體滿時,無法接收新的寫請求,所以在redis2.0後,提供了虛擬記憶體的支援。但需要注意的是redis 所有的key都會放在記憶體中,在記憶體不夠時,只把value 值放入交換區中。雖然使用虛擬記憶體,但效能基本不受影響,需要注意的是要把vm-max-memory設定到足夠來放下所有的key。

vm-swap-file /tmp/redis.swap :設定虛擬記憶體的分頁檔路徑,不可多個Redis執行個體共用

vm-max-memory 0 :設定開啟虛擬記憶體後,redis將使用的最大實體記憶體大小, 預設為0,redis將把他所有能放到分頁檔的都放到分頁檔中,以盡量少的使用實體記憶體。即當vm-max-memory設定為0的時候,其實是所有value都存在於磁碟。在生產環境下,需要根據實際情況設定該值,最好不要使用預設的 0 。

vm-page-size 32:設定虛擬記憶體的頁大小。如果 value 值比較大,如要在 value 中放置部落格、新聞之類的所有文章內容,就設大一點。

vm-pages 134217728:設定分頁檔的總的 page 數量。注意page table資訊是放在實體記憶體中,每8個page 就會佔據RAM中的 1 個 byte,總的虛擬記憶體大小 = vm-page-size * vm-pages 。

vm-max-threads 4:設定 VM IO 同時使用的線程數量。

activerehashing yes:是否重設Hash表,設定成yes後redis將每100毫秒使用1毫秒CPU時間來對redis的hash表重新hash,可降低記憶體的使用。當使用情境有較為嚴格的即時性需求,不能接受Redis時不時的對請求有2毫秒的延遲的話,把這項配置為no。如果沒有這麼嚴格的即時性要求,可以設定為 yes,以便能夠儘可能快的釋放記憶體。

slave-serve-stale-data yes:如果當前server是slave,那麼當slave與master失去通訊時,是否繼續為用戶端提供服務,”yes”表示繼續,”no”表示終止.
在”yes”情況下,slave繼續向用戶端提供唯讀服務,有可能此時的資料已經到期.
在”no”情況下,任何向此server發送的資料請求服務(包括用戶端和此server的slave)都將被告知”error”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.