redis config配置詳解

我們先看看config 默認情況下系統是怎麼配置的。在命令行中輸入 config get *

127.0.0.1:6370> config get *
1) "dbfilename"
2) "dump6370.rdb"
3) "requirepass"
4) ""
5) "masterauth"
6) ""
7) "unixsocket"
…………

默認情況下有61配置信息,每一個命令佔兩行,第一行爲配置名稱信息,第二行爲配置的具體信息。
我們就從上到下來理解一下這些配置信息中的某些配置:
1.dbfilename是本地持久化存儲數據庫文件名,默認爲dump.rdb。我可以在安裝目錄文件夾下找到這個文件。
2.requirepass是密碼,即連接服務器的密碼,默認爲空。下面我來設置一個密碼然後用帶密碼的命令連接一遍。
3.msterauth設置連接mster服務的密碼(主從服務器的主服務器)。
4.logfile日記記錄的地址及文件名稱。
5.maxmemory 設置最大內存
6.timeout一個客戶端閒置多少秒後關閉,默認是0,代表禁止,永不關閉
7.auto-aof-rewrite-percentage AOF重寫文件的百分比,如果是100表示整個文件重寫,如果是0表示禁用AOF自動重寫特性
8.auto-aof-rewrite-min-size 當前AOF文件大於多少是開始重寫AOF文件
9.hash-max-zipmap-entries 512 配置字段最多512個。
10.hash-max-zipmap-value 64 配置value最大爲64字節。
11.list-max-ziplist-entries 512 配置list最大長度512個
12.list-max-ziplist-value 64 配置list的value最大長度64字節
13.set-max-intset-entries 512 配置set最大長度512個
14.zset-max-ziplist-entries 128 配置zset最大長度512個
15.zset-max-ziplist-value 64 配置zset的value最大長度64字節
16.slowlog-log-slower-than 10000 配置這個告訴redis當一個命令執行超過多少時會被記錄,單位是微秒。被記錄的命令我們可以通過查看slowlog get 100(number) 查看
17.slowlog-max-len 128 設置日記記錄的條數
18.port 6379 端口號爲6379
19.databases 16 當前redis服務器有16個數據庫
20.repl-ping-slave-period 10 salve根據時間間隔向master發送ping請求,默認是10秒。
21.repl-timeout 60 設置同步的超時時間 默認60秒
22.repl-backlog-size 1mb 設置數據備份的backlog大小,當一個slave在一段時間斷開連接時記錄salve數據的緩衝,當它重新連接時,不必同步全部數據。
23.repl-backlog-ttl 3600 當slave在一段時間斷開後多少時間我們釋放backlog中的數據。
24.maxclients 10000 最大同時連接的客戶端數量
25.slave-priority 100 slave優先級,如果master不再正常工作了,哨兵將用它來選擇一個slave提升爲master。數字越小 優先級越高,但是數字爲0時這個slave永遠不會提升爲master。
26.min-slaves-to-write N與min-slaves-max-lag M是一起設置的。表示如果master少於N個延遲小於等於M秒的已連接slave,就可以停止接收寫操作。
27.slave-server-stale-date yes 當一個slave失去可master的連接時,或者正在進行同步中,我們設置slave-server-stale-date爲yes表示slave會繼續響應客戶端請求,可能是正常數據,也可能是還沒有獲取值的空數據。如果我們設置slave-server-stale-date爲no表示slave會"正在從matser同步(SYNC with master in prograess)"
28.slave-read-only yes 設置你的slave服務是否爲只讀
29.stop-write-on-bgsave-error yes 如果開啓RDB並且最新的後臺保存失敗,將禁止用戶對redis進行寫的操作,提示用戶保存失敗了
30.daemonize no 默認在window下不支持這個配置,在linux下可以。表示默認redis不會作爲守護進程運行。如果配置爲yes就是守護進程,如果設置爲守護進程就需要了解這個配置pidfile /var/run/redis.pid 配置守護進程的位置。
31.rdbcompression yes當導出rdb文件時是否用LZF壓縮字符串對象。默認是yes,因爲它幾乎在任何情況下都是不錯的,但是如果我們想節省CPU的話可以設置no,但是如果你有壓縮了數據文件就會更大了。
32.rdbchecksum yes 是否添加一個校驗放在文件最後,多消耗10%的性能。所有我們可以關掉它來提高性能。
33.aof-rewrite-incremental-fsnc yes 當一個子進程重寫AOF文件時,如果啓用,則文件每生成32M數據會被同步。爲了增量式的寫入硬盤並且避免大的延遲高峯這個指令是非常有用的。
34.dir 數據庫工作的目錄。
35.maxmemmory-policy volatile-lru 內存達到上線刪除key的策略

volatile-lru -> 根據LRU算法生成的過期時間來刪除。

    # allkeys-lru -> 根據LRU算法刪除任何key。
    # volatile-random -> 根據過期設置來隨機刪除key。 
    # allkeys->random -> 無差別隨機刪。 
    # volatile-ttl -> 根據最近過期時間來刪除(輔以TTL) 
    # noeviction -> 誰也不刪,直接在寫操作時返回錯誤。3
36.appendfsync everysec fsync() 系統調用告訴操作系統把數據寫到磁盤上,而不是等更多的數據進入輸出緩衝區。
    # Redis支持三種不同的模式:
    # no:不要立刻刷,只有在操作系統需要刷的時候再刷。比較快。
    # always:每次寫操作都立刻寫入到aof文件。慢,但是最安全。
    # everysec:每秒寫一次。折中方案。 
 37.save 900 1 save 300 10 save 60 10000 把數據庫存在磁盤上
    #   會在指定秒數和數據變化次數之後把數據庫寫到磁盤上。
    #
    #   下面的例子將會進行把數據寫入磁盤的操作:
    #   900秒(15分鐘)之後,且至少1次變更
    #   300秒(5分鐘)之後,且至少10次變更
    #   60秒之後,且至少10000次變更
38.loglevel notice 
    # 指定服務器調試等級
    # 可能值:
    # debug (大量信息,對開發/測試有用)
    # verbose (很多精簡的有用信息,但是不像debug等級那麼多)
    # notice (適量的信息,基本上是你生產環境中需要的)
    # warning (只有很重要/嚴重的信息會記錄下來)
39.client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60.
    # 客戶端的輸出緩衝區的限制,可用於強制斷開那些因爲某種原因從服務器讀取數據的速度不夠快的客戶端,
    # (一個常見的原因是一個發佈/訂閱客戶端消費消息的速度無法趕上生產它們的速度)
    #
    # 可以對三種不同的客戶端設置不同的限制:
    # normal -> 正常客戶端
    # slave -> slave和 MONITOR 客戶端
    # pubsub -> 至少訂閱了一個pubsub channel或pattern的客戶端
40.slaveof 127.0.0.1 6379 指定master服務的地址端口
41.bind    默認情況下所有網絡都不訪問,如果設置了bind就可以控制訪問的網絡。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章