首頁 資料庫 Redis redis的設定檔介紹

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

redis集群模式怎麼搭建 redis集群模式怎麼搭建 Apr 10, 2025 pm 10:15 PM

Redis集群模式通過分片將Redis實例部署到多個服務器,提高可擴展性和可用性。搭建步驟如下:創建奇數個Redis實例,端口不同;創建3個sentinel實例,監控Redis實例並進行故障轉移;配置sentinel配置文件,添加監控Redis實例信息和故障轉移設置;配置Redis實例配置文件,啟用集群模式並指定集群信息文件路徑;創建nodes.conf文件,包含各Redis實例的信息;啟動集群,執行create命令創建集群並指定副本數量;登錄集群執行CLUSTER INFO命令驗證集群狀態;使

redis怎麼讀取隊列 redis怎麼讀取隊列 Apr 10, 2025 pm 10:12 PM

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

redis數據怎麼清空 redis數據怎麼清空 Apr 10, 2025 pm 10:06 PM

如何清空 Redis 數據:使用 FLUSHALL 命令清除所有鍵值。使用 FLUSHDB 命令清除當前選定數據庫的鍵值。使用 SELECT 切換數據庫,再使用 FLUSHDB 清除多個數據庫。使用 DEL 命令刪除特定鍵。使用 redis-cli 工具清空數據。

centos redis如何配置Lua腳本執行時間 centos redis如何配置Lua腳本執行時間 Apr 14, 2025 pm 02:12 PM

在CentOS系統上,您可以通過修改Redis配置文件或使用Redis命令來限制Lua腳本的執行時間,從而防止惡意腳本佔用過多資源。方法一:修改Redis配置文件定位Redis配置文件:Redis配置文件通常位於/etc/redis/redis.conf。編輯配置文件:使用文本編輯器(例如vi或nano)打開配置文件:sudovi/etc/redis/redis.conf設置Lua腳本執行時間限制:在配置文件中添加或修改以下行,設置Lua腳本的最大執行時間(單位:毫秒)

redis過期策略怎麼設置 redis過期策略怎麼設置 Apr 10, 2025 pm 10:03 PM

Redis數據過期策略有兩種:定期刪除:定期掃描刪除過期鍵,可通過 expired-time-cap-remove-count、expired-time-cap-remove-delay 參數設置。惰性刪除:僅在讀取或寫入鍵時檢查刪除過期鍵,可通過 lazyfree-lazy-eviction、lazyfree-lazy-expire、lazyfree-lazy-user-del 參數設置。

redis命令行怎麼用 redis命令行怎麼用 Apr 10, 2025 pm 10:18 PM

使用 Redis 命令行工具 (redis-cli) 可通過以下步驟管理和操作 Redis:連接到服務器,指定地址和端口。使用命令名稱和參數向服務器發送命令。使用 HELP 命令查看特定命令的幫助信息。使用 QUIT 命令退出命令行工具。

redis計數器怎麼實現 redis計數器怎麼實現 Apr 10, 2025 pm 10:21 PM

Redis計數器是一種使用Redis鍵值對存儲來實現計數操作的機制,包含以下步驟:創建計數器鍵、增加計數、減少計數、重置計數和獲取計數。 Redis計數器的優勢包括速度快、高並發、持久性和簡單易用。它可用於用戶訪問計數、實時指標跟踪、遊戲分數和排名以及訂單處理計數等場景。

如何優化debian readdir的性能 如何優化debian readdir的性能 Apr 13, 2025 am 08:48 AM

在Debian系統中,readdir系統調用用於讀取目錄內容。如果其性能表現不佳,可嘗試以下優化策略:精簡目錄文件數量:盡可能將大型目錄拆分成多個小型目錄,降低每次readdir調用處理的項目數量。啟用目錄內容緩存:構建緩存機制,定期或在目錄內容變更時更新緩存,減少對readdir的頻繁調用。內存緩存(如Memcached或Redis)或本地緩存(如文件或數據庫)均可考慮。採用高效數據結構:如果自行實現目錄遍歷,選擇更高效的數據結構(例如哈希表而非線性搜索)存儲和訪問目錄信

See all articles