Redis使用——Redis的redis.conf配置注釋詳解(一)

Redis使用——Redis的redis.conf配置注釋詳解(一)

背景

日常我們開發(fā)時兵钮,我們會遇到各種各樣的奇奇怪怪的問題(踩坑o(╯□╰)o)蛆橡,這個常見問題系列就是我日常遇到的一些問題的記錄文章系列,這里整理匯總后分享給大家掘譬,讓其還在深坑中的小伙伴有繩索能爬出來泰演。
同時在這里也歡迎大家把自己遇到的問題留言或私信給我,我看看其能否給大家解決葱轩。

開發(fā)環(huán)境

  • 系統(tǒng):Ubuntu
  • 工具:Docker
  • 鏡像:Redis
  • 官方配置:redis.conf

內(nèi)容

本節(jié)對于其Redis的redis.conf配置進行注釋翻譯睦焕,確定各個配置的主要用途藐握,便于日后配置使用,由于redis.conf中的配置較多垃喊,因此我們拆分為四節(jié)進行猾普,話不多說下面開始。

# Redis 配置文件示例本谜。
#
# 注意為了讀取配置文件初家,啟動時Redis 必須以配置文件的路徑作為第一個參數(shù):
# ./redis-server /path/to/redis.conf

# 單位注意:當需要內(nèi)存大小時, 可以用1k 5GB 4M 等形式指定它:
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 單位不區(qū)分大小寫,所以 1GB 1Gb 1gB 都是一樣的乌助。

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

# 在此處包含一個或多個其他配置文件溜在。  如果您有一個適用于所有 Redis 服務器的標準模板,但還需要
# 自定義一些每個服務器的設置他托,這將非常有用掖肋。包含文件可以包含其他文件,因此請明智地使用它赏参。
#
# 注意選項“include”不會被來自管理員或Redis Sentinel的命令“CONFIG REWRITE”重寫志笼。
# Redis的特性是最后處理的配置指令為最終生效指令。
# 因此在使用時您最好將標準模板放在第一行把篓,其他需要覆蓋的配置放在最后一行籽腕,這樣使其準確生效,以免在運行時被覆蓋纸俭。
#
# include /path/to/local.conf
# include /path/to/other.conf

################################## MODULES #####################################

# 在啟動時加載模塊。如果服務器無法加載模塊它將中止南窗∽岷埽可以使用多個 loadmodule 指令。
#
# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so

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

# 默認情況下万伤,如果沒有“ bind" 配置指令被指定窒悔,Redis 偵聽來自主機上所有可用網(wǎng)絡接口的連接。
# 可以只聽一個或多個選定的接口使用"bind" 配置指令敌买,后跟一個或多個 IP 地址简珠。
# 例如:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ 警告~~~ 如果運行Redis 的計算機直接暴露在互聯(lián)網(wǎng)上,那么綁定到所有接口都是危險的虹钮,并且實例將公開給互聯(lián)網(wǎng)上的每個人聋庵。
# 因此,默認情況下芙粱,我們?nèi)∠⑨屢韵耣ind指令祭玉,這將強制 Redis 僅偵聽IPv4 環(huán)回接口地址(這意味著 Redis 將只能接受來自運行它的同一主機的客戶端連接)。
# 如果您確定要讓您的實例收聽所有接口只需注釋掉以下行即可春畔。
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 127.0.0.1

# 保護模式是一層安全保護脱货,為了避免Redis 實例在互聯(lián)網(wǎng)上保持打開狀態(tài)被訪問和利用岛都。
# 當保護模式開啟并且如果:
# 1) 服務器沒有使用"bind" 指令顯式綁定到一組地址。
# 2) 沒有配置密碼振峻。
#
# 服務器只接受來自客戶端的連接
# IPv4 和 IPv6 環(huán)回地址 127.0.0.1 和 ::1臼疫,以及來自 Unix 域套接字。
# 默認情況下啟用保護模式扣孟。你應該禁用它
# 你確定你希望來自其他主機的客戶端連接到 Redis 即使沒有配置身份驗證烫堤,也沒有一組特定的接口使用“bind”指令顯式列出。
protected-mode yes

# 接受指定端口上的連接哈打,默認為 6379 (IANA #815344)。如果指定了port 0湾盗,Redis 將不會監(jiān)聽 TCP 套接字。
port 6379

# TCP listen() backlog.
#
# 在高每秒請求數(shù)的環(huán)境中,您需要大量的 backlog 來避免客戶端連接緩慢的問題疆导。請注意,Linux 內(nèi)核會默默地將其截斷為 /proc/sys/net/core/somaxconn 的值,
# 因此確保提高 somaxconn 和 tcp_max_syn_backlog 的值以獲得所需的效果兽叮。
tcp-backlog 511

# Unix 套接字。
#
# 指定將用于偵聽傳入連接的 Unix 套接字的路徑。它是沒有默認值的观挎,因此如果未指定造成,那Redis 將不會在 unix 套接字上偵聽
#
# unixsocket /tmp/redis.sock
# unixsocketperm 700

# 客戶端空閑 N 秒后關閉連接(0 表示禁用)
timeout 0

# TCP keepalive.
#
# 如果非零缓升,使用 SO_KEEPALIVE 在沒有通信的情況下向客戶端發(fā)送 TCP ACK 骇吭。這有兩個原因:
#
# 1) 檢測死對等點。
# 2) 強制中間的網(wǎng)絡設備認為連接是alive 的。
#
# 在 Linux 上,指定的值(以秒為單位)是用于發(fā)送 ACK 的時間段。注意關閉連接需要雙倍的時間。在其他內(nèi)核上,周期取決于內(nèi)核配置。
# 此選項的合理值是 300 秒,這是從 Redis 3.2.1 開始的新Redis 默認值边败。
tcp-keepalive 300

################################# TLS/SSL #####################################

# 默認情況下登疗,TLS/SSL 是禁用的。要啟用它认罩,“tls-port”配置指令可用于定義 TLS 偵聽端口疾忍。
# 要在默認端口上啟用 TLS ,請使用:
# 
# port 0
# tls-port 6379

# 配置 X.509 證書和私鑰汉嗽,用于向連接的客戶端弓叛、主節(jié)點或集群對等方驗證服務器撰筷。這些文件應該是PEM 格式陈惰。
#
# tls-cert-file redis.crt 
# tls-key-file redis.key

# 配置DH 參數(shù)文件以啟用Diffie-Hellman (DH) 密鑰交換:
#
# tls-dh-params-file redis.dh

# 配置用于驗證 TLS/SSL 客戶端和對等方的 CA 證書包或目錄。Redis 需要至少一個顯式配置毕籽。這些抬闯,并且不會隱式使用系統(tǒng)范圍的配置井辆。
#
# tls-ca-cert-file ca.crt
# tls-ca-cert-dir /etc/ssl/certs

# 默認情況下,TLS 端口上的客戶端(包括副本服務器)需要使用有效的客戶端證書進行身份驗證. 
# 如果指定“no”画髓,則不需要且不接受客戶端證書掘剪。如果指定了“optional”,則接受客戶端證書奈虾,并且如果提供夺谁,則必須是有效的,但不是必需的肉微。
#
# tls-auth-clients no
# tls-auth-clients optional

# 默認情況下匾鸥,Redis 副本不會嘗試與其主服務器建立 TLS 連接。
# 使用以下指令在復制鏈接上啟用 TLS碉纳。
#
# tls-replication yes

# 默認情況下勿负,Redis Cluster 總線使用普通 TCP 連接。要為總線協(xié)議啟用 TLS劳曹,請使用以下指令:
#
# tls-cluster yes

# 明確指定要支持的 TLS 版本奴愉。允許的值不區(qū)分大小寫并包括“TLSv1”、“TLSv1.1”铁孵、“TLSv1.2”锭硼、“TLSv1.3”(OpenSSL >= 1.1.1)或任意組合。
# 要僅啟用 TLSv1.2 和 TLSv1.3蜕劝,請使用:
# 
# tls-protocols "TLSv1.2 TLSv1.3"

# 配置允許的密碼檀头。有關此字符串的語法的更多信息,請參見 ciphers(1ssl) 聯(lián)機幫助頁岖沛。
# 注意:此配置僅適用于<= TLSv1.2暑始。
#
# tls-ciphers DEFAULT:!MEDIUM

# 配置允許的 TLSv1.3 密碼套件。請參閱 ciphers(1ssl) 聯(lián)機幫助頁以獲取有關此字符串語法的更多信息婴削,特別是 TLSv1.3 密碼套件
#
# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256

# 選擇密碼時廊镜,使用服務器的首選項而不是客戶端首選項。默認情況下唉俗,服務器遵循客戶端的偏好嗤朴。
#
# tls-prefer-server-ciphers yes

# 默認情況下,TLS 會話緩存已啟用互躬,以允許支持它的客戶端更快播赁、更便宜地重新連接颂郎。使用以下指令禁用緩存吼渡。
#
# tls-session-caching no

# 更改緩存的 TLS 會話的默認數(shù)量。0值將緩存設置為無限大小乓序。默認大小為 20480寺酪。
#
# tls-session-cache-size 5000

# 更改緩存 TLS 會話的默認超時時間坎背。默認超時時間為 300 秒。
#
# tls-session-cache-timeout 60

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

# 默認情況下寄雀,Redis 不作為守護進程運行得滤。如果需要,請使用“yes”盒犹。注意Redis在daemonized時會在/var/run/redis.pid中寫入pid文件懂更。
daemonize no

# 如果您從 upstart 或 systemd 運行 Redis,Redis 可以加入你的管理樹中與您的監(jiān)督樹急膀。
# 選項:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#                        requires "expect stop" in your upstart job config
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# 注意:這些監(jiān)督方法僅表示“進程已準備好”
#  他們不能連續(xù) ping 回你的supervisor.
supervised no

# 如果指定了 pid 文件沮协,Redis 在啟動時將其寫入指定的位置并在退出時將其刪除。
# 當服務器運行非守護進程時卓嫂,如果沒有在配置中指定慷暂,則不會創(chuàng)建 pid 文件。當服務器被守護時晨雳,即使沒有指定行瑞,也會使用pid 文件#,默認為“/var/run/redis.pid”餐禁。
#
# 創(chuàng)建一個pid文件是最好的努力:如果Redis無法創(chuàng)建它沒有什么不好的事情發(fā)生血久,服務器將啟動并正常運行。
#
pidfile /var/run/redis_6379.pid

# 指定服務器詳細級別坠宴。
# 這可以是以下之一:
# debug (很多信息洋魂,對開發(fā)/測試有用)
# verbose (許多很少有用的信息,但不像調(diào)試級別那樣混亂)
# notice (適度冗長喜鼓,你可能在生產(chǎn)中想要什么)
# warning (僅記錄非常重要/關鍵的消息)
loglevel notice

# 指定日志文件名副砍。也可以使用空字符串強制Redis 登錄標準輸出。請注意庄岖,如果您使用標準輸出進行日志記錄但守護進程豁翎,日志將發(fā)送到 /dev/null 
logfile ""

# 要啟用系統(tǒng)記錄器的日志記錄,只需將 'syslog-enabled' 設置為 yes隅忿,并可選擇更新其他syslog 參數(shù)以滿足您的需求心剥。
# syslog-enabled no

# 指定系統(tǒng)日志標識。
# syslog-ident redis

# 指定系統(tǒng)日志工具背桐。必須是 USER 或介于 LOCAL0-LOCAL7 之間优烧。
# syslog-facility local0

# 設置數(shù)據(jù)庫數(shù)量。默認數(shù)據(jù)庫是 DB 0链峭,您可以使用 SELECT <dbid> 在每個連接的基礎上選擇不同的數(shù)據(jù)庫畦娄,其中dbid 是介于 0 和 'databases'-1 
databases 16

# 默認情況下 Redis 顯示 ASCII 徽標僅當開始記錄到標準輸出并且標準輸出是 TTY 時。基本上這意味著通常ASCII徽標僅在交互式會話中顯示熙卡。
# 但是杖刷,通過將以下選項設置為 yes,可以強制執(zhí)行 4.0 之前的行為并始終在啟動日志中顯示# ASCII 徽標驳癌。
always-show-logo yes

################################ SNAPSHOTTING  ################################
#
# 將 DB 保存在磁盤上:
#
#   save <seconds> <changes>
#
#   如果發(fā)生給定的秒數(shù)和給定的對 DB 的寫操作次數(shù)滑燃,將保存DB。
#   在下面的示例中颓鲜,行為將是保存:
#   900 秒(15 分鐘)后表窘,如果至少更改了 1 個鍵
#   300 秒(5 分鐘)后,如果至少 10 個鍵更改了
#   60 秒后甜滨,如果至少有 10000 個鍵更改
#
#   注意:您可以通過注釋掉所有“save”行來完全禁用保存蚊丐。
#
#   也可以刪除所有先前配置的save
#   就像下面的例子:
#
#   save ""

save 900 1
save 300 10
save 60 10000

# 默認情況下,如果啟用了 RDB 快照(至少一個保存點)并且最新的后臺保存失敗艳吠,Redis 將停止接受寫入麦备。
# 這將使用戶意識到(以一種艱難的方式)數(shù)據(jù)沒有正確地保存在磁盤上,否則很可能沒有人會注意到并且會發(fā)生一些災難昭娩。
# 如果后臺保存進程將再次開始工作凛篙,Redis 將自動允許再次寫入。
# 但是栏渺,如果您已經(jīng)設置了對 Redis 服務器的適當監(jiān)控和持久性呛梆,您可能希望禁用此功能,以便 Redis 繼續(xù)照常工作磕诊,即使存在磁盤填物、權限等問題娶桦。
#
stop-writes-on-bgsave-error yes

# 在轉儲 .rdb 數(shù)據(jù)庫時使用 LZF 壓縮字符串對象懈费?
# 默認情況下啟用壓縮漫萄,因為它幾乎總是一個勝利立润。
# 如果您想在保存子項中節(jié)省一些 CPU,請將其設置為“no”右遭,但如果您有可壓縮的值或鍵吮蛹,數(shù)據(jù)集可能會更大轿偎。
rdbcompression yes

# 從 RDB 的第 5 版開始广凸,CRC64 校驗和被放置在文件的末尾阅茶。
# 這使得格式更能抵抗損壞,但有一個性能在保存和加載 RDB 文件時點擊支付(大約 10%)谅海,因此您可以禁用它以獲得最佳性能脸哀。
# 在禁用校驗和的情況下創(chuàng)建的 RDB 文件的校驗和為0,這將告訴加載代碼跳過檢查扭吁。
#
rdbchecksum yes

# 轉儲數(shù)據(jù)庫的文件名
dbfilename dump.rdb

# 在沒有啟用持久性的情況下刪除復制使用的 RDB 文件撞蜂。
# 默認情況下白筹,此選項是禁用的,但是在某些環(huán)境中出于法規(guī)或其他安全問題谅摄,RDB 文件由 master保存在磁盤上以提供副本,
# 或由副本存儲在磁盤上以便加載它們以進行初始同步系馆,應該盡快刪除送漠。請注意,此選項僅適用于同時禁用AOF 和 RDB 持久性的實例由蘑,否則完全忽略闽寡。
# 獲得相同效果的另一種(有時更好)方法是在主實例和副本實例上使用無盤復制。然而在副本的情況下尼酿,無盤并不總是一種選擇爷狈。
rdb-del-sync-files no

# 工作目錄
#
# 數(shù)據(jù)庫將寫入此目錄中,文件名在上面使用“dbfilename”配置指令指定裳擎。
#
# 附加文件也將在此目錄中創(chuàng)建涎永。
#
# 注意這里必須指定目錄,而不是文件名鹿响。
dir ./

更多配置詳見Redis使用——Redis的redis.conf配置注釋詳解(二)羡微。

本文聲明:

88x31.png

知識共享許可協(xié)議
本作品由 cn華少 采用 知識共享署名-非商業(yè)性使用 4.0 國際許可協(xié)議 進行許可。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惶我,一起剝皮案震驚了整個濱河市妈倔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绸贡,老刑警劉巖盯蝴,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異听怕,居然都是意外死亡捧挺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門尿瞭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來松忍,“玉大人,你說我怎么就攤上這事筷厘∶停” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵酥艳,是天一觀的道長摊溶。 經(jīng)常有香客問我,道長充石,這世上最難降的妖魔是什么莫换? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上拉岁,老公的妹妹穿的比我還像新娘坷剧。我一直安慰自己,他們只是感情好喊暖,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布惫企。 她就那樣靜靜地躺著,像睡著了一般陵叽。 火紅的嫁衣襯著肌膚如雪狞尔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天巩掺,我揣著相機與錄音偏序,去河邊找鬼。 笑死胖替,一個胖子當著我的面吹牛研儒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播独令,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼殉摔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了记焊?” 一聲冷哼從身側響起逸月,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎遍膜,沒想到半個月后碗硬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瓢颅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年恩尾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挽懦。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡翰意,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出信柿,到底是詐尸還是另有隱情冀偶,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布渔嚷,位于F島的核電站进鸠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏形病。R本人自食惡果不足惜客年,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一霞幅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧量瓜,春花似錦司恳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唧取,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間划提,已是汗流浹背枫弟。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鹏往,地道東北人淡诗。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像伊履,于是被迫代替她去往敵國和親韩容。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容