redis3.2.1配置文件詳解

最近公司正好在搞redis,學習一下順便做一個簡單的配置文件解釋!因爲用的是windows系統,最高版本就是3.2.1所以.....

如果有不妥的地方歡迎大家交流!!!

 

 

# Redis configuration file example

# Note on units: when memory size is needed, it is possible to specify
# it in the usual form of 1k 5GB 4M and so forth:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.

################################## INCLUDES ###################################

# 假如說你有一個可用於所有的 redis server 的標準配置模板,
# 但針對某些 server 又需要一些個性化的設置,
# 你可以使用 include 來包含一些其他的配置文件,這對你來說是非常有用的。
# 但是要注意include 是不能被 config rewrite 命令改寫的
# 由於 redis 總是以最後的加工線作爲一個配置指令值,所以你最好是把 include 放在這個文件的最前面,
# 以避免在運行時覆蓋配置的改變,相反,你就把它放在後面
#
# include .\path\to\local.conf

#
# include c:\path\to\other.conf

################################## NETWORK #####################################

# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
#指定要綁定的IP地址
bind 127.0.0.1

#是否開啓密碼保護模式
protected-mode yes

#綁定端口號
port 6379

#設置tcp的backlog(連接隊列)
#相當於是完成和未完成3次握手的隊列總和
tcp-backlog 511

#指定unix socket的路徑
# unixsocket /tmp/redis.sock

#指定unix socket file的權限,最大777
# unixsocketperm 700

#連接超時時間,默認0無限制
timeout 0

#檢測keepalive的值【健康檢查】,建議60秒
# A reasonable value for this option is 60 seconds.
tcp-keepalive 0

################################# GENERAL #####################################

#日誌級別
#debug(調試):大量信息,對開發/測試有用
#verbose(冗長):許多信息很少有用,但不像調試級別那樣混亂
#notice(注意):適度冗長,可能是生產中需要的
#warning(警告):僅記錄非常重要/關鍵的消息
loglevel notice

#日誌文件存儲路徑
logfile "server_log.txt"

#是否啓用日誌
syslog-enabled yes

#系統日誌標識
syslog-ident redis

#啓動後有多少個數據庫,默認16個
databases 16

################################ SNAPSHOTTING  ################################

#   In the example below the behaviour will be to save:
#   after 900 sec (15 min) if at least 1 key changed
#   after 300 sec (5 min) if at least 10 keys changed
#   after 60 sec if at least 10000 keys changed
#指定在多長時間內,有多少次更新操作,就將數據同步到數據文件可以多個條件配合
#900秒內1次更改
save 900 1

#300秒內10次更改
save 300 10

#60秒內10000次更改
save 60 10000

#持久化過程中失敗,redis不會停止所有寫請求
stop-writes-on-bgsave-error yes

#是否使用LZF算法對RDB文件進行壓縮
rdbcompression yes

#是否對RDB數據進行校
rdbchecksum yes

#RDB持久化文件名稱【不包含路徑】
dbfilename dump.rdb

#持久化文件保存路徑
dir ./

################################# REPLICATION #################################

#將當前服務器轉變爲指定服務器的從屬服務器
# slaveof <masterip> <masterport>

#主服務器密碼
# masterauth <master-password>

# yes,主從複製中,從服務器可以響應客戶端請求;
# no,主從複製中,從服務器將阻塞所有請求,有客戶端請求時返回“SYNC with master in progress”
slave-serve-stale-data yes

# 從服務器是否爲只讀,默認只讀
slave-read-only yes

#
# Replication SYNC strategy: disk or socket.

#是否啓用無硬盤複製
repl-diskless-sync no

#無硬盤複製超時時間,默認5秒
repl-diskless-sync-delay 5

#用於集羣內心跳機制。心跳發送間隔,默認10秒
# repl-ping-slave-period 10

#主從同步超時時間,默認60秒;注意:超時時間一定要比心跳時間大
# repl-timeout 60

#主從同步時是否禁用tcp-nodelay
#開啓情況使用更少的帶寬進行主從同步,但同步延遲會加大
repl-disable-tcp-nodelay no

#當緩存到達指定值後同步到從屬服務器
repl-backlog-size 1mb

#數據在緩衝區中的過時時間,默認3600秒
# repl-backlog-ttl 3600

#從服務器優先級,用於選舉master,編號越小優先級越高
slave-priority 100

#以下兩個設置配合使用
#即:當主節點有3個從節點,並且3個節點的鏈接延遲小於10秒master則執行客戶端的寫操作
# 如果3臺沒有同步完則不接受客戶端的各種請求
#設置執行寫操作需要的最少從屬服務器數量
# min-slaves-to-write 3
#設置最大連接延遲
# min-slaves-max-lag 10
#
################################## SECURITY ###################################


#設置本節點的redis訪問密碼
# requirepass foobared

# Example:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# It is also possible to completely kill a command by renaming it into
# an empty string:
#危險命令重命名
# rename-command FLUSHALL ""
# rename-command FLUSHDB  ""
# rename-command CONFIG ""
# rename-command KEYS ""
#
# Please note that changing the name of commands that are logged into the
# AOF file or transmitted to slaves may cause problems.

################################### LIMITS ####################################

#客戶端最大連接數,默認是10000
#超出報:max number of clients reached
# maxclients 10000

#是否開啓持久化
# persistence-available [(yes)|no]
#
#最大內存數
# maxmemory <bytes>
#
#volatile-lru:LRU算法進行移除,只針對設置了過期時間的值
#allkeys-lru:對所有的值用LRU算法進行移除
#volatile-random:在過期結合中移除隨機的key
#allkeys-random:移除隨機key
#設置內存移除規則
# maxmemory-policy noeviction

#樣例數量
# maxmemory-samples 5

############################## APPEND ONLY MODE ###############################

#是否開啓AOF模式
appendonly no
# The name of the append only file (default: "appendonly.aof")
appendfilename "appendonly.aof"

#寫入策略
#每一次寫操作都會調用一次fsync
# appendfsync always

#每隔一秒進行一次fsync調用,將緩衝區中的數據寫到磁盤
appendfsync everysec

#Redis不會主動調用fsync去將AOF日誌內容同步到磁盤
# appendfsync no

#是否在後臺寫時同步/單寫,no表示同步寫
no-appendfsync-on-rewrite no

#重寫機制,當文件小於100byte時不能觸發
auto-aof-rewrite-percentage 100

#aof文件重寫最小的文件大小
auto-aof-rewrite-min-size 64mb

#指redis在恢復時,會忽略最後一條可能存在問題的指令。
#默認值yes,即在aof寫入時,可能存在指令寫錯的問題(突然斷電,寫了一半)

#當AOF文件損壞時,是直接加載還是修復後加載
aof-load-truncated yes

################################ LUA SCRIPTING  ###############################

#超時時間,超過則阻塞其他任務以執行Lua腳本
lua-time-limit 5000

################################ REDIS CLUSTER  ###############################
#
#是否啓用集羣支持
# cluster-enabled yes

#羣集節點每次發生更改時自動保留羣集配置狀態的文件路徑
# cluster-config-file nodes-6379.conf

#Redis羣集節點可以不可用的最長時間
# cluster-node-timeout 15000

#集羣故障轉移時間
# cluster-slave-validity-factor 10

#從節點遷移算法
# cluster-migration-barrier 1

#爲no時,表示當負責一個插槽的主庫下線且沒有相應的從庫進行故障恢復時,集羣仍然可用
# cluster-require-full-coverage yes

################################## SLOW LOG ###################################

#表示slowlog的劃定界限,只有query執行時間大於slowlog-log-slower-than的纔會定義成慢查詢,纔會被slowlog進行記錄
slowlog-log-slower-than 10000

#表示慢查詢最大的條數
slowlog-max-len 128

################################ LATENCY MONITOR ##############################

#
latency-monitor-threshold 0

############################# EVENT NOTIFICATION ##############################

#當redis的key被刪除時,redis會發送兩種不同類型的事件,特定的事件會往特定的頻道發送通知,我們只要訂閱這個特定的頻道等待通知即可.
#鍵空間通知
# PUBLISH __keyspace@0__:foo del
#鍵通知
# PUBLISH __keyevent@0__:del foo

#key過期時間配置
#notify-keyspace-events 的參數爲 “Ex”。x 代表了過期事件
#notify-keyspace-events "Ex" 保存配置後,重啓Redis服務,使配置生效。
#  notify-keyspace-events Elg
#  notify-keyspace-events Ex
#
notify-keyspace-events ""

############################### ADVANCED CONFIG ###############################

#表示當hash項(field,value)數>512即ziplist項>1024的時候轉爲dict
hash-max-ziplist-entries 512

#64,表示當hash中的value長度超過64的時候轉爲dict。
hash-max-ziplist-value 64

#參數的含義解釋,取正值時表示quicklist節點ziplist包含的數據項。取負值表示按照佔用字節來限定quicklist節點ziplist的長度。
#          -5: 每個quicklist節點上的ziplist大小不能超過64 Kb。
#          -4: 每個quicklist節點上的ziplist大小不能超過32 Kb。
#          -3: 每個quicklist節點上的ziplist大小不能超過16 Kb。
#          -2: 每個quicklist節點上的ziplist大小不能超過8 Kb。(默認值)
#          -1: 每個quicklist節點上的ziplist大小不能超過4 Kb。
list-max-ziplist-size -2

# list設計最容易被訪問的是列表兩端的數據,中間的訪問頻率很低
#如果符合這個場景list還有一個配置可以對中間節點進行壓縮(採用的LZF——一種無損壓縮算法)進一步節省內存
#含義:
#          0: 是個特殊值,表示都不壓縮。這是Redis的默認值。
#          1: 表示quicklist兩端各有1個節點不壓縮,中間的節點壓縮。
#          2: 表示quicklist兩端各有2個節點不壓縮,中間的節點壓縮。
list-compress-depth 0

#添加的集合元素個數超過了set-max-intset-entries配置的值的時候,也會導致intset轉成dict
set-max-intset-entries 512

#當有序集合的元素小於zset-max-ziplist-entries配置(默認是128個)
#同時每個元素的值都小於zset-max-ziplist-value(默認是64字節)時
#Redis會用ziplist來作爲有序集合的內部編碼實現,ziplist可以有效的減少內存的使用
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

#HyperLogLog數據結構優化參數
hll-sparse-max-bytes 3000

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

#客戶端輸出緩衝區的配置
#三個參數分別表示 最大限制 最小限制 最小限制的持續時間
client-output-buffer-limit slave 256mb 64mb 60

#客戶端發佈/訂閱模式的緩衝限制
client-output-buffer-limit pubsub 32mb 8mb 60

# 設置Redis後臺任務執行頻率,比如清除過期鍵任務。
# 設置範圍爲1到500,默認爲10.越大CPU消耗越大,延遲越小。
# 建議不要超過100
hz 10

# 當子進程重寫AOF文件,以下選項開啓時,AOF文件會每產生32M數據同步一次。
# 這有助於更快寫入文件到磁盤避免延遲
aof-rewrite-incremental-fsync yes

################################## INCLUDES ###################################

# 包含一個或多個其他配置文件。
# 這在你有標準配置模板但是每個redis服務器又需要個性設置的時候很有用。
# 包含文件特性允許你引人其他配置文件
# include /path/to/local.conf
# include /path/to/other.conf

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章