✨ Redis配置檔案詳解
- redis的Units機關
- INCLUDES包含
- 網絡相關配置
- bind(預設127.0.0.1)
- protected-mode(預設yes)
- port(預設6379)
- tcp-backlog(預設511)
- timeout(預設0)
- tcp-kepplive(預設300秒)
- GENERAL 通用
- daemonize
- pidfile
- loglevel
- logfile
- databases 16
- SECURITY 安全
- 設定密碼
- CLIENTS
- maxclients(預設是10000)
- maxmemory
- maxmemory-policy(預設是 noeviction)
- maxmemory-samples(預設是5)
📃個人首頁:不斷前進的皮卡丘
🌞部落格描述:夢想也許遙不可及,但重要的是追夢的過程,用部落格記錄自己的成長,記錄自己一步一步向上攀登的印記
🔥個人專欄:微服務專欄
✔️redis常見的操作指令:http://www.redis.cn/commands.html
redis的Units機關
配置大小機關,開頭定義了一些基本的度量機關,隻支援bytes,不支援bit大小寫不敏感
INCLUDES包含
類似jsp中的include,多執行個體的情況可以把公用的配置檔案提取出來
網絡相關配置
bind(預設127.0.0.1)
生産環境肯定要寫你應用伺服器的位址;伺服器是需要遠端通路的,是以需要将其注釋掉 如果開啟了protected-mode,那麼在沒有設定bind ip且沒有設密碼的情況下,Redis隻允許接受本機的響應
protected-mode(預設yes)
将本機通路保護模式設定no,這樣就可以支援遠端通路了
port(預設6379)
端口号預設是6379
tcp-backlog(預設511)
設定tcp的backlog,backlog其實是一個連接配接隊列,backlog隊列總和=未完成三次握手隊列 + 已經完成三次握手隊列。在高并發環境下你需要一個高backlog值來避免慢用戶端連接配接問題。注意Linux核心會将這個值減小到/proc/sys/net/core/somaxconn的值(128),是以需要确認增大/proc/sys/net/core/somaxconn和/proc/sys/net/ipv4/tcp_max_syn_backlog(128)兩個值來達到想要的效果
timeout(預設0)
一個空閑的用戶端維持多少秒會關閉,0表示關閉該功能。即永不關閉。
tcp-kepplive(預設300秒)
對通路用戶端的一種心跳檢測(比如我們連接配接上redis以後,但是很長時間沒有進行任何操作,我們可能以後也不進行操作了,redis就會進行心跳檢測,看我們是否進行操作,如果沒有進行操作,就結束連接配接),每隔n秒檢測一次。 機關為秒,如果設定為0,則不會進行Keepalive檢測,建議設定成60
GENERAL 通用
daemonize
是否為背景程序,設定為yes
守護程序,背景啟動
LINUX背景程序也叫守護程序(Daemon),是運作在背景的一種特殊程序。它獨立于控制終端并且周期性地執行某種任務或等待處理某些發生的事件。一般用作系統服務,可以用crontab送出,編輯或者删除相應得作業。守護的意思就是不受終端控制。Linux的大多數伺服器就是用守護程序實作的。比如,Internet伺服器inetd,Web伺服器httpd等。同時,守護程序完成許多系統任務。比如,作業規劃程序crond,列印程序lpd等。
前台程序就是使用者使用的有控制終端的程序。
前台程序:通過終端啟動,且啟動後一直占用終端的程序。
背景程序:通過終端啟動,但是在運作過程中不在占用終端。背景程序的産生大部分是前台程序轉換為背景程序。但是背景程序的檔案描述符依然繼承于父程序,例如父程序shell,是以背景程序依然可以将資訊輸出到目前終端上,但是此時的背景程序同樣是依附在終端下的,也就是父程序依然是shell。父程序終止,背景程序同樣終止。背景的程序擁有兩種狀态,運作與停止。
守護程序:開機自啟動不依附任何終端。終端關閉不會對守護程序的運作造成任何影響。也就是PPID為1的子程序。
pidfile
存放pid檔案的位置,每個執行個體會産生一個不同的pid檔案
loglevel
指定日志記錄級别,Redis總共支援四個級别:debug、verbose、notice、warning,預設為notice四個級别根據使用階段來選擇,生産環境選擇notice 或者warning
logfile
日志的輸出檔案路徑,預設為空
databases 16
設定庫的數量 預設16,預設資料庫為0,可以使用SELECT <dbid>指令在連接配接上指定資料庫id
SECURITY 安全
設定密碼
通路密碼的檢視、設定和取消
在指令中設定密碼,隻是臨時的。重新開機redis伺服器,密碼就還原了。
永久設定,需要再配置檔案中進行設定。
CLIENTS
maxclients(預設是10000)
設定redis同時可以與多少個用戶端進行連接配接。
預設情況下為10000個用戶端。
如果達到了此限制,redis則會拒絕新的連接配接請求,并且向這些連接配接請求方發出“max number of clients reached”以作回應。
maxmemory
- 建議必須設定,否則,将記憶體占滿,造成伺服器當機
- 設定redis可以使用的記憶體量。一旦到達記憶體使用上限,redis将會試圖移除内部資料,移除規則可以通過maxmemory-policy來指定。
- 如果redis無法根據移除規則來移除記憶體中的資料,或者設定了“不允許移除”,那麼redis則會針對那些需要申請記憶體的指令傳回錯誤資訊,比如SET、LPUSH等。
- 但是對于無記憶體申請的指令,仍然會正常響應,比如GET等。如果你的redis是主redis(說明你的redis有從redis),那麼在設定記憶體使用上限時,需要在系統中留出一些記憶體空間給同步隊列緩存,隻有在你設定的是“不移除”的情況下,才不用考慮這個因素。
maxmemory-policy(預設是 noeviction)
- volatile-lru:使用LRU算法移除key,隻對設定了過期時間的鍵;(最近最少使用)
- allkeys-lru:在所有集合key中,使用LRU算法移除key
- volatile-random:在過期集合中移除随機的key,隻對設定了過期時間的鍵
- allkeys-random:在所有集合key中,移除随機的key
- volatile-ttl:移除那些TTL值最小的key,即那些最近要過期的key
- noeviction:不進行移除。針對寫操作,隻是傳回錯誤資訊
maxmemory-samples(預設是5)
- 設定樣本數量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,是以你可以設定樣本的大小,redis預設會檢查這麼多個key并選擇其中LRU的那個。
- 一般設定3到7的數字,數值越小樣本越不準确,但性能消耗越小