久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis配置文件redis.conf的詳細分析

143次閱讀
沒有評論

共計 3938 個字符,預計需要花費 10 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章主要介紹了 Redis 配置文件 redis.conf 的詳細分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

文章目錄

一、常用的三十條配置

二、Redis 的內存淘汰策略

2.1 為數據設置超時時間

2.2 采用 LRU 算法動態將不用的數據刪除

三、自定義配置 Redis

Linux 下做開發要牢記:軟件默認安裝在 /opt 下,對于出廠默認設置的配置文件永遠不要去直接改動,正確的做法是備份一份后再操作。

Redis 的配置文件位于 Redis 安裝目錄下,文件名為 reids.conf,下面介紹常用的三十個配置,文章附帶英譯版 redis.conf 文件。

一、常用的三十條配置

前十條配置

daemonize no
Redis 默認不是以守護進程的方式運行,可以修改為 yes 啟用守護進程。

pidfile /var/run/redis/pid
當 Redis 以守護進程方式運行時,Redis 默認會把 pid 寫入 /var/run/redis.pid 文件,可以通過 pidfile 指定路徑。

port 6379
指定 Redis 的監聽端口。

bind 127.0.0.1
Redis 綁定的主機地址。

timeout 300
設置當客戶端閑置多長時間后關閉連接,如果為 0 表示關閉該功能。

loglevel verbose
指定日志記錄級別,Redis 共支持四個級別:debug、verbose(默認)、notice、warning。

logfile stdout
日志記錄方式,默認為標準輸出,如果配置 Redis 為守護進程,而這里的日志記錄方式為標準輸出,則日志會發送給 /dev/null

databases 16
設置數據庫的數量,默認數量為 0,可以使用 select dbid 命令在連接上指定數據庫 id。

save seconds changes
指定多長時間內,有多少次更新操作,就將數據同步到數據文件,可以多個條件配合。Redis 配置文件中提供了 3 個條件:
save 900 1;save 300 10;save 60 10000

rdbcompression yes
指定存儲至本地數據庫時是否壓縮數據,默認為 yes,Redis 采用 LZF(壓縮算法)壓縮,如果為了節省 cpu 時間,可以關閉該選項,但是會導致數據庫文件變的巨大。

中間十條配置

dbfilename dump.rdb
指定本地數據庫文件名,默認值為 dump.rdb

dir ./
指定本地數據庫存放目錄

slaveof masterip masterport
社會當本機為 slav 服務時,設置 master 服務的 IP 地址及端口,在 Redis 啟動時,會自動從 master 進行數據同步

masterauth master-password
當 master 服務設置了密碼保護時,slav 服務連接 master 的密碼。

requirepass foobared
設置 Redis 的連接密碼,如果配置了連接密碼,客戶端 在連接 Redis 時需要通過 AUTH password 命令提供密碼,默認是關閉的。

maxclients 128
設置同一時間最大客戶端連接數,默認無限制,Redis 可以同時打開的客戶端連接數為 Redis 進程可以打開的最大文件描述符數。如果設置 maxclients 0,表示不做限制,當客戶端連接數到達限制時,Redis 會關閉新的連接并向客戶端返回 max number of clients reached 錯誤信息。

maxmemory bytes
指定 Redis 最大內存限制,Redis 在啟動時會把數據加載到內存中,達到最大內存后,Redis 會先嘗試清除已到期或即將到期的 Key,當此方法處理后,仍然到達最大內存設置,將無法進行寫入操作,但仍然可以進行讀取操作。Redis 新的 vm 機制,會把 Key 存放內存,value 存放在 swap 區。

appendonly no
指定是否在某次更新操作后進行日志記錄,Redis 在默認情況下是一部的把數據寫入磁盤,如果不開啟,可能會在斷電時導致一段時間內的數據丟失。

appendfilename appendonly.aof
指定更新日志文件名,默認為 appendonly.aof。

appendsync everysec
指定更新日志條件,共有三個可選項:
①no:表示等操作系統進行數據緩存同步到磁盤 (快)、
②always:表示每次更新操作系統后手動調用 fsync() 將數據寫到磁盤(慢、安全)、
③everysec:表示美妙同步一次(效率折中,為默認值)

最后十個

vm-enable no
指定是否啟用虛擬內存機制,默認值為 no,VM 機制將數據分頁存放,由 Redis 將訪問量較少的頁即冷數據 swap 到磁盤上,訪問多的頁面由磁盤自動換出到內存中。

vm-swap-file /tmp/redis.swap
虛擬內存文件路徑,默認值為 /tmp/redis.swap,不可多個 Redis 實例共享。

vm-max-memory 0
將所有大于 vm-max-memory 的數據存入虛擬內存, 無論 vm-max-memory 設置多小, 所有索引數據都是內存存儲的(Redis 的索引數據 就是 keys), 也就是說, 當 vm-max-memory 設置為 0 的時候, 其實是所有 value 都存在于磁盤。默認值為 0

vm-page-size 32
Redis swap 文件分成了很多的 page,一個對象可以保存在多個 page 上面,但一個 page 上不能被多個對象共享,vm-page-size 是要根據存儲的數據大小來設定的,如果存儲很多小對象,page 大小最好設置為 32 或者 64bytes;如果存儲很大大對象,則可以使用更大的 page,如果不確定,就使用默認值。

vm-pages 134217728
設置 swap 文件中的 page 數量,由于頁表(一種表示頁面空閑或使用的 bitmap)是放在內存中的,在磁盤上每 8 個 pages 將消耗 1byte 的內存。

vm-max-threads 4
設置訪問 swap 文件的線程數,不要超過機器的核數,如果設置為 0,那么所有對 swap 文件的操作都是串行的,可能會造成比較長時間的延遲。默認值為 4。

glueoutputbuf yes
設置在向客戶端應答時,是否把較小的包合并為一個包發送,默認為開啟。

hash-max-zipmap-entries 64/hash-max-zipmap-value 512
指定在超過一定的數量或者最大的元素超過某一臨界值時,采用一種特殊的哈希算法。

activerehashing yes
指定是否激活重置哈希,默認為開啟。

include /path/to/local.conf
指定包含其它的配置文件,可以在同一主機上多個 Redis 實例之間使用同一份配置文件,而同時各個實例又擁有自己的特定配置文件。

二、Redis 的內存淘汰策略

Redis 作為優秀的緩存中間件,時常會存儲大量的數據,即使采用了集群部署來動態擴容,也應該即時的清理內存,維護系統性能。

2.1 為數據設置超時時間

expire key time(以秒為單位) 這是最常用的方式

setex(String Key, int seconds, String value) 字符串獨有的方式

除了字符串自己獨有設置過期時間的方法外,其他方法都需要依賴 expire 方法來設置時間。
如果沒有設置時間,那緩存就是永不過期。
如果設置了過期時間,之后又想讓緩存永不過期,使用 persist key

2.2 采用 LRU 算法動態將不用的數據刪除

內存管理的一種頁面置換算法,對于在內存中但又不用的數據塊 (內存塊) 叫做 LRU,操作系統會根據哪些數據屬于 LRU 而將其移除內存騰出空間來加載另外的數據。

volatile-lru 設定超時時間的數據中,刪除最不常用使用的數據

allkeys-lru 查詢所有的 key 中最不常使用的數據進行刪除,這是應用最廣泛的策略。

volatile-random 在已經設定了超時的數據中隨機刪除

allkeys-random 查詢所有的 key,之后隨機刪除

volatile-ttl 查詢全部設定超時時間的數據,之后排序,將馬上要國企的數據進行刪除

noeviction 如果設置為該屬性,則不會進行刪除操作,在內存溢出時報錯返回

volatile-lfu 從所有配置了超時時間的鍵中刪除使用頻率最少的鍵

allkeys-lfu 從所有鍵中刪除使用頻率最少的鍵

三、自定義配置 Redis

進入對應的安裝目錄 /usr/local/redis,修改 redis.conf 配置文件。

作為初學者 Redis 一般需要修改下面三項:

將 daemonize no 修改為 daemonize yes,即改為以守護進程啟動。

將 bind 127.0.01 注釋掉,即改為允許除本機外的機器訪問 Redis 服務。

使用 requirepass 設置密碼,即保證服務安全 / 在極少數情況下不設定密碼無法進行遠程訪問。

Redis 采用的是單進程多線程的模式。當 redis.conf 中選項 daemonize 設置成 yes 時,代表開啟守護進程模式。在該模式下,redis 會在后臺運行,并將進程 pid 號寫入至 redis.conf 選項 pidfile 設置的文件中,此時 redis 將一直運行,除非手動 kill 該進程。但當 daemonize 選項設置成 no 時,當前界面將進入 redis 的命令行界面,exit 強制退出或者關閉連接工具 (putty,xshell 等) 都會導致 redis 進程退出。服務端開發的大部分應用都是采用后臺運行的模式。

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“Redis 配置文件 redis.conf 的詳細分析”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計3938字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 郴州市| 枝江市| 永福县| 弥勒县| 锦州市| 乐平市| 田林县| 永平县| 礼泉县| 甘肃省| 安化县| 渭源县| 竹溪县| 门头沟区| 灵台县| 上饶县| 个旧市| 邢台市| 于都县| 清丰县| 两当县| 银川市| 景东| 阿拉尔市| 通化县| 新昌县| 淮南市| 玉环县| 朝阳县| 文水县| 鄯善县| 武威市| 新化县| 宝清县| 河西区| 兴山县| 新巴尔虎左旗| 广宁县| 宣武区| 广元市| 建平县|