這是個人的學習筆記,主要學習資料如下:
- 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其他路徑的配置檔案。
-
綁定的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服務時,列印出來的那個巨大盒子logo。redis-sever
快照設定(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服務。我們可以設定密碼,文法是
(不知道為什麼文檔要寫成foobared)requirepass password
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