天天看點

Redis學習筆記:配置檔案1、配置檔案redis.cofig

這是個人的學習筆記,主要學習資料如下:

  • B站狂神說,Redis教程

目錄

  • 1、配置檔案redis.cofig
    • 1.1、總結
    • 1.2、配置項詳解
      • 通用配置
      • 快照設定(RDB存儲)
        • RDB和AOF是什麼
        • 配置資訊
      • 快照設定(AOF存儲)
      • 主從複制設定
      • 安全設定
      • 用戶端設定

1、配置檔案redis.cofig

redis的配置檔案就在安裝目錄下,

redis.config

檔案,我使用brew安裝,預設安裝目錄是

/usr/local/etc

1.1、總結

1.2、配置項詳解

  • include多個配置檔案:35行的位置,可以include其他路徑的配置檔案。
    Redis學習筆記:配置檔案1、配置檔案redis.cofig
  • 綁定的ip:69行。預設指定本機,意思是隻接受來自本機的redis請求。如果我們想要接受外部的請求,那要用修改這項内容,其中會用到一些通配符。

    如果這一項沒有配置,那意味着本機的redis服務會接收所有的請求,相當于直接暴露給外部,這非常危險。

  • 綁定端口号:92行,預設監聽6379端口号。
  • 安全模式:88行。預設是開啟的,如果關閉了,那意味着redis服務端可以接受沒有驗證過的請求。
protected-mode yes
           

通用配置

  • 設定redis服務為守護程序:136行。預設不是守護程序,如果設定為守護程序的話,會産生redis.pid檔案。建議開啟,這樣redis服務就不會突然自己就結束。
daemonize no
           
  • 指定redis.pid檔案位址:158行。當redis被設定成守護程序時,系統會根據這個位址産生redis.pid檔案。預設值是

    /var/run/redis_6379.pid

    這個檔案即使生成失敗,也不會影響redis服務的運作。

  • 指定redis的日志級别:166行。可以指定redis的日志級别,可選的級别可看備注。預設的級别是

    notice

# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel notice
           
  • 設定日志檔案位址:171行。可以指定redis産生的日志的位置。預設值是空,這時redis會将日志資訊輸出到标準輸出流之中。
  • 資料庫的個數:186行。預設16個
databases 16
           
  • 是否顯示logo:194行。這個logo指的是使用指令

    redis-sever

    啟動redis服務時,列印出來的那個巨大盒子logo。
    Redis學習筆記:配置檔案1、配置檔案redis.cofig

快照設定(RDB存儲)

RDB和AOF是什麼

RDB是

Redis Data Base

的縮寫,AOF是

Append Only File

的縮寫。

配置資訊

  • 設定儲存快照的時間規則:218行。儲存規則是,累計有y條資料被改變,那在x秒後會持久化一次。文法是

    sava x y

    。可以同時設定多條規則。預設有三條規則,如代碼所示。
save 900 1
save 300 10
save 60 10000
           
  • 持久化發生錯誤時,是否繼續工作:235行。預設情況下,隻要發生持久化錯誤,redis就會停止服務(但不是完全停止,之後是有機會自動在開啟服務的)。這算是一個強提醒,提醒開發者持久化失敗。

    如果持久化工作又重新開始,那redis又會開啟服務(原注釋是再次允許寫入,Redis will automatically allow writes again,我了解成再次開啟服務,待驗證)。

  • 是否壓縮持久化檔案:241行。預設開啟壓縮,這會消耗一定的CPU資源。
  • 是否持久化檔案校驗:250行。校驗持久化檔案,讓檔案格式更好(反正就是表現更好)。但是會對性能有較大的消耗,注釋文檔說大概有10%的損耗。預設是開啟校驗的。
  • 持久化檔案的檔案名:253行。預設是dump.rdb檔案。
dbfilename dump.rdb
           
  • 持久化檔案儲存路徑:263行。注意是目錄,不是檔案。預設值是

    /usr/local/var/db/redis/

dir /usr/local/var/db/redis/
           

快照設定(AOF存儲)

  • 設定快照模式:699行。預設是RDB模式。
appendonly no
           
  • 設定存儲檔案名:703行。預設名是

    appendonly.aof

  • 設定同步時間:729行。作業系統也有自己的政策去同步資料,我們無法控制作業系統的政策。這個選項是強制要求作業系統同步資料的時間。
# appendfsync always 一有修改,就同步一次
appendfsync everysec # 每秒同步一次
# appendfsync no 不同步,讓作業系統想什麼時候同步就什麼時候同步
           

主從複制設定

安全設定

  • 設定通路密碼:507行。這條設定預設被注釋掉,表示不需要密碼就可通路redis服務。我們可以設定密碼,文法是

    requirepass password

    (不知道為什麼文檔要寫成foobared)
requirepass foobared
           

如果設定了密碼,要先使用```auth password```先登入,之後才可以繼續其它操作。

用戶端設定

  • 設定最大連接配接數:539行。預設支援最大10000個用戶端連接配接redis服務。
maxclients 10000
           
  • 設定redis可占用的最大記憶體:566行。機關是byte,有個預設大小,注釋文檔沒寫多少。
  • 記憶體不夠時的處理政策:597行。有多個處理政策可選,詳細可看注釋,預設是noeviction,也就是什麼都不管,直接抛出異常傳回。
# volatile-lru -> Evict using approximated LRU among the keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Remove a random key among the ones with an expire set.
# allkeys-random -> Remove a random key, any key.
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
maxmemory-policy noeviction
           

繼續閱讀