搜尋
首頁資料庫Redisredis的設定檔介紹

redis的設定檔介紹

Dec 13, 2019 pm 05:25 PM
redis

redis的設定檔介紹

1、開頭說明

redis的設定檔介紹

#這裡沒什麼好說的,要注意的是後面需要使用內存大小時,可以指定單位,通常是以k,gb,m的形式出現,且單位不區分大小寫。

2、INCLUDES

redis的設定檔介紹

我們知道Redis只有一個設定文件,如果多個人進行開發維護,那麼就需要多個這樣的設定文件,這時候多個設定檔就可以在此透過include /path/to/local.conf 配置進來,而原本的redis.conf 設定檔就作為一個總閘。

ps:如果用過struts2 開發的同學,在專案組中多人開發的情況下,通常會有多個struts2.xml 文件,這時候也會透過類別時的配置引入進來。

另外需要注意的時,如果將此配置寫在redis.conf 檔案的開頭,那麼後面的配置會覆蓋引入檔案的配置,如果想以引入檔案的配置為主,那麼需要將include配置寫在redis.conf 檔案的末尾。

3、MODULES

redis的設定檔介紹

#redis3.0的爆炸功能是新增了集群,而redis4.0就是在3.0的基礎上新增了許多功能,其中這裡的自訂模組配置就是其中之一。透過這裡的 loadmodule 配置將引入自訂模組來新增一些功能。

4、NETWORK

redis的設定檔介紹

ps:這裡的設定較長,我只截取了一部分,然後下同。

①、bind:綁定redis伺服器網路卡IP,預設為127.0.0.1,即本地回環位址。這樣的話,存取redis服務只能透過本機的客戶端連接,而無法透過遠端連線。如果bind選項為空的話,那會接受所有來自於可用網路介面的連線。

②、port:指定redis運行的端口,預設是6379。由於Redis是單執行緒模型,因此單機開多個Redis進程的時候會修改連接埠。

③、timeout:設定客戶端連線時的逾時時間,單位為秒。當客戶端在這段時間內沒有發出任何指令,那麼關閉該連線。預設值為0,表示不關閉。

④、tcp-keepalive :單位是秒,表示將週期性的使用SO_KEEPALIVE檢測客戶端是否仍處於健康狀態,避免伺服器一直阻塞,官方給出的建議值是300s,如果設定為0 ,則不會週期性的檢測。

5、GENERAL

redis的設定檔介紹

#具體配置詳解:

①、daemonize:設定為yes表示指定Redis以守護程式的方式啟動(後台啟動)。預設值為no

②、pidfile:配置PID檔案路徑,當redis作為守護程式運行的時候,它會把pid 預設寫到/var/redis/run/redis_6379.pid 檔案裡面

③、loglevel :定義日誌等級。預設值為notice,有以下4種取值:

debug(記錄大量日誌信息,適用於開發、測試階段)

verbose(較多日誌資訊)

notice(適量日誌訊息,使用於生產環境)

warning(只有部分重要、關鍵資訊才會被記錄)

④、logfile :設定log檔案位址,預設列印在命令列終端機的視窗上

⑤、databases:設定資料庫的數目。預設的資料庫是DB 0 ,可以在每個連線上使用select  指令選擇一個不同的資料庫,dbid則是介於0到databases - 1 之間的數值。預設值是 16,也就是說預設Redis有16個資料庫。

6、SNAPSHOTTING

這裡的設定主要用來做持久化操作。

redis的設定檔介紹

①、save:這裡是用來配置觸發 Redis的持久化條件,也就是什麼時候將記憶體中的資料儲存到硬碟。預設如下配置:

save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存

當然如果你只是用Redis的快取功能,不需要持久化,那麼你可以註解掉所有的 save 行來停用儲存功能。可以直接一個空字串來實現停用:save ""

②、stop-writes-on-bgsave-error :預設值為yes。當啟用了RDB且最後一次後台儲存資料失敗,Redis是否停止接收資料。這會讓使用者意識到資料沒有正確持久化到磁碟上,否則沒有人會注意到災難(disaster)發生了。如果Redis重啟了,那麼又可以重新開始接收資料了

③、rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。

④、rdbchecksum :默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。

⑤、dbfilename :设置快照的文件名,默认是 dump.rdb

⑥、dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。使用上面的 dbfilename 作为保存的文件名。

7、REPLICATION

redis的設定檔介紹

①、slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:

1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候 

2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误

②、slave-read-only:配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。

③、repl-diskless-sync:主从数据复制是否使用无硬盘复制功能。默认值为no。

④、repl-diskless-sync-delay:当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。  这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从站服务。从站则要排队等待下一次RDB传送。因此服务器等待一段  时间以期更多的从站到达。延迟时间以秒为单位,默认为5秒。要关掉这一功能,只需将它设置为0秒,传送会立即启动。默认值为5。

⑤、repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。  

Linux内核默认配置情况下最多40毫秒的延时。如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。默认值为no。

8、SECURITY

redis的設定檔介紹

①、rename-command:命令重命名,对于一些危险命令例如:

flushdb(清空数据库)

flushall(清空所有记录)

config(客户端连接后可配置服务器)

keys(客户端连接后可查看所有存在的键)                   

作为服务端redis-server,常常需要禁用以上命令来使得服务器更加安全,禁用的具体做法是是:

rename-command FLUSHALL ""

也可以保留命令但是不能轻易使用,重命名这个命令即可:

rename-command FLUSHALL abcdefg

这样,重启服务器后则需要使用新命令来执行操作,否则服务器会报错unknown command。

9、CLIENTS

redis的設定檔介紹

①、maxclients :设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。  描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

10、MEMORY MANAGEMENT

redis的設定檔介紹

①、maxmemory:设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。

②、maxmemory-policy :当内存使用达到最大值时,redis使用的清楚策略。有以下几种可以选择:

1)volatile-lru   利用LRU演算法移除設定過期時間的key (LRU:最近使用Least Recently Used ) 

2)allkeys-lru   利用LRU演算法移除任何key 

3)volatile-random 移除設定過期時間的隨機key 

4)allkeys-random  移除隨機ke

5)volatile-ttl   移除即將過期的key(minor TTL) 

6)noeviction  noeviction   不移除任何key,只回傳一個寫錯誤,預設選項

③、maxmemory-samples :LRU 和minimal TTL 演算法都不是精確的演算法,但是相對精確的演算法(為了節省記憶體)。隨意你可以選擇樣本大小進行檢,redis預設選擇3個樣本進行檢測,你可以透過maxmemory-samples進行設定樣本數。

11、APPEND ONLY MODE

1redis的設定檔介紹

①、appendonly:預設redis使用的是rdb方式持久化,這種方式在許多應用中已經足夠用了。但是redis如果中途宕機,會導致可能有幾分鐘的資料遺失,根據save來策略進行持久化,Append Only File是另一種持久化方式,  可以提供更好的持久化特性。 Redis會把每次寫入的資料在接收後都寫入appendonly.aof文件,每次啟動時Redis都會先把這個文件的資料讀入記憶體裡,先忽略RDB檔。預設值為no。

②、appendfilename :aof檔名,預設為"appendonly.aof"

③、appendfsync:aof持久化策略的設定;no表示不執行fsync,由作業系統保證資料同步到磁碟,速度最快;always表示每次寫入都執行fsync,以確保資料同步到磁碟;everysec表示每秒執行一次fsync,可能會導致遺失這1s資料

④、no-appendfsync -on-rewrite:在aof重寫或寫入rdb檔案的時候,會執行大量IO,此時對於everysec和always的aof模式來說,執行fsync會造成阻塞過長時間,no-appendfsync-on-rewrite字段設定為預設為no。

如果對延遲要求很高的應用,這個欄位可以設定為yes,否則還是設定為no,這樣對持久化特性來說這是更安全的選擇。   設定為yes表示rewrite期間對新寫入操作不fsync,暫時存在記憶體中,等rewrite完成後再寫入,預設為no,建議yes。 Linux的預設fsync策略是30秒。可能遺失30秒資料。預設值為no。

⑤、auto-aof-rewrite-percentage:預設值為100。 aof自動重寫配置,噹噹前aof檔案大小超過上一次重寫的aof檔案大小的百分之多少進行重寫,即當aof檔案成長到一定大小的時候,Redis能夠調用bgrewriteaof對日誌檔案進行重寫。當前AOF檔案大小是上次日誌重寫得到AOF檔案大小的二倍(設定為100)時,自動啟動新的日誌重寫過程。

⑥、auto-aof-rewrite-min-size:64mb。設定允許重寫的最小aof檔案大小,避免了達到約定百分比但尺寸仍然很小的情況還要重寫。

⑦、aof-load-truncated:aof檔案可能在尾部是不完整的,當redis啟動的時候,aof檔案的資料被載入記憶體。重啟可能發生在redis所在的主機作業系統宕機後,尤其在ext4檔案系統沒有加上data=ordered選項,出現這種現象  redis宕機或異常終止不會造成尾部不完整現象,可以選擇讓redis退出,或導入盡可能多的數據。

如果選擇的是yes,當截斷的aof檔案被匯入的時候,會自動發布一個log給客戶端然後load。如果是no,使用者必須手動redis-check-aof修復AOF檔才可以。預設值為 yes。

12、LUA SCRIPTING

1redis的設定檔介紹

#①、lua-time-limit:一個lua腳本執行的最大時間,單位為ms 。預設值為5000.

13、REDIS CLUSTER

1redis的設定檔介紹

①、cluster-enabled:叢集開關,預設為不開啟集群模式。

②、cluster-config-file:叢集設定檔的名稱,每個節點都有一個叢集相關的設定文件,持久化保存叢集的資訊。 這個檔案並不需要手動配置,這個設定檔有Redis產生並更新,每個Redis叢集節點需要一個單獨的設定檔。請確保與實例運行的系統中設定檔名稱不衝突。預設配置為nodes-6379.conf。

③、cluster-node-timeout :可以設定值為15000。節點互連逾時的閥值,叢集節點超時毫秒數

④、cluster-slave-validity-factor :可以設定值為10。在進行故障轉移的時候,全部slave都會請求申請為master,但是有些slave可能與master斷開連接一段時間了,  導致資料過於陳舊,這樣的slave不應該被提升為master。這個參數就是用來判斷slave節點與master斷線的時間是否過長。

判斷方法是:比較slave斷開連接的時間和(node-timeout * slave-validity-factor) repl-ping-slave-period     如果節點超時時間為三十秒, 並且slave-validity- factor為10,假設預設的repl-ping-slave-period是10秒,即如果超過310秒slave將不會嘗試進行故障轉移

⑤、cluster-migration-barrier :可以配置值為1 。 master的slave數量大於該值,slave才能遷移到其他孤立master上,如這個參數若被設為2,那麼只有當一個主節點擁有2 個可工作的從節點時,它的一個從節點會嘗試遷移。

⑥、cluster-require-full-coverage:預設情況下,叢集全部的slot有節點負責,叢集狀態才為ok,才能提供服務。  設定為no,可以在slot沒有全部分配的時候提供服務。不建議打開該配置,這樣會造成分區的時候,小分區的master一直在接受寫入請求,而造成很長時間資料不一致。

更多redis知識請關注redis資料庫教學欄位。

以上是redis的設定檔介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
REDIS:探索其功能和功能REDIS:探索其功能和功能Apr 19, 2025 am 12:04 AM

Redis脫穎而出是因為其高速、多功能性和豐富的數據結構。 1)Redis支持字符串、列表、集合、散列和有序集合等數據結構。 2)它通過內存存儲數據,支持RDB和AOF持久化。 3)從Redis6.0開始引入多線程處理I/O操作,提升了高並發場景下的性能。

Redis是SQL還是NOSQL數據庫?答案解釋了Redis是SQL還是NOSQL數據庫?答案解釋了Apr 18, 2025 am 12:11 AM

RedisisclassifiedasaNoSQLdatabasebecauseitusesakey-valuedatamodelinsteadofthetraditionalrelationaldatabasemodel.Itoffersspeedandflexibility,makingitidealforreal-timeapplicationsandcaching,butitmaynotbesuitableforscenariosrequiringstrictdataintegrityo

REDIS:提高應用程序性能和可擴展性REDIS:提高應用程序性能和可擴展性Apr 17, 2025 am 12:16 AM

Redis通過緩存數據、實現分佈式鎖和數據持久化來提升應用性能和可擴展性。 1)緩存數據:使用Redis緩存頻繁訪問的數據,提高數據訪問速度。 2)分佈式鎖:利用Redis實現分佈式鎖,確保在分佈式環境中操作的安全性。 3)數據持久化:通過RDB和AOF機制保證數據安全性,防止數據丟失。

REDIS:探索其數據模型和結構REDIS:探索其數據模型和結構Apr 16, 2025 am 12:09 AM

Redis的數據模型和結構包括五種主要類型:1.字符串(String):用於存儲文本或二進制數據,支持原子操作。 2.列表(List):有序元素集合,適合隊列和堆棧。 3.集合(Set):無序唯一元素集合,支持集合運算。 4.有序集合(SortedSet):帶分數的唯一元素集合,適用於排行榜。 5.哈希表(Hash):鍵值對集合,適合存儲對象。

REDIS:對其數據庫方法進行分類REDIS:對其數據庫方法進行分類Apr 15, 2025 am 12:06 AM

Redis的數據庫方法包括內存數據庫和鍵值存儲。 1)Redis將數據存儲在內存中,讀寫速度快。 2)它使用鍵值對存儲數據,支持複雜數據結構,如列表、集合、哈希表和有序集合,適用於緩存和NoSQL數據庫。

為什麼要使用redis?利益和優勢為什麼要使用redis?利益和優勢Apr 14, 2025 am 12:07 AM

Redis是一個強大的數據庫解決方案,因為它提供了極速性能、豐富的數據結構、高可用性和擴展性、持久化能力以及廣泛的生態系統支持。 1)極速性能:Redis的數據存儲在內存中,讀寫速度極快,適合高並發和低延遲應用。 2)豐富的數據結構:支持多種數據類型,如列表、集合等,適用於多種場景。 3)高可用性和擴展性:支持主從復制和集群模式,實現高可用性和水平擴展。 4)持久化和數據安全:通過RDB和AOF兩種方式實現數據持久化,確保數據的完整性和可靠性。 5)廣泛的生態系統和社區支持:擁有龐大的生態系統和活躍社區,

了解NOSQL:Redis的關鍵特徵了解NOSQL:Redis的關鍵特徵Apr 13, 2025 am 12:17 AM

Redis的關鍵特性包括速度、靈活性和豐富的數據結構支持。 1)速度:Redis作為內存數據庫,讀寫操作幾乎瞬時,適用於緩存和會話管理。 2)靈活性:支持多種數據結構,如字符串、列表、集合等,適用於復雜數據處理。 3)數據結構支持:提供字符串、列表、集合、哈希表等,適合不同業務需求。

REDIS:確定其主要功能REDIS:確定其主要功能Apr 12, 2025 am 12:01 AM

Redis的核心功能是高性能的內存數據存儲和處理系統。 1)高速數據訪問:Redis將數據存儲在內存中,提供微秒級別的讀寫速度。 2)豐富的數據結構:支持字符串、列表、集合等,適應多種應用場景。 3)持久化:通過RDB和AOF方式將數據持久化到磁盤。 4)發布訂閱:可用於消息隊列或實時通信系統。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具