麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > Redis > 正文

Redis的使用過程中常用的redis.conf 配置修改總結(jié)

2020-03-22 20:14:14
字體:
供稿:網(wǎng)友
在Redis的使用過程,除了知道對Redis五種數(shù)據(jù)類型的操作方法之外,最主要額就是對redis.conf進行配置了,下面整理出redis.conf中常見的一些配置介紹。

參數(shù)說明

redis.conf 配置項說明如下:

1: Redis默認(rèn)不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程

 daemonize no

2: 當(dāng)Redis以守護進程方式運行時,Redis默認(rèn)會把pid寫入/var/run/redis.pid文件,可以通過pidfile指定

 pidfile /var/run/redis.pid

3: 指定Redis監(jiān)聽端口,默認(rèn)端口為6379,作者在自己的一篇博文中解釋了為什么選用6379作為默認(rèn)端口,

因為6379在手機按鍵上MERZ對應(yīng)的號碼,而MERZ取自意大利歌女Alessia Merz的名字

 port 6379

4: 綁定的主機地址

 bind 127.0.0.1

5: 當(dāng) 客戶端閑置多長時間后關(guān)閉連接,如果指定為0,表示關(guān)閉該功能

timeout 300

6: 指定日志記錄級別,Redis總共支持四個級別:debug、verbose、notice、warning,

默認(rèn)為verbose

 loglevel verbose

7: 日志記錄方式,默認(rèn)為標(biāo)準(zhǔn)輸出,如果配置Redis為守護進程方式運行,而這里又配置為日志

記錄方式為標(biāo)準(zhǔn)輸出,則日志將會發(fā)送給/dev/null

 logfile stdout

8: 設(shè)置數(shù)據(jù)庫的數(shù)量,默認(rèn)數(shù)據(jù)庫為0,可以使用SELECT dbid 命令在連接上指定數(shù)據(jù)庫id

 databases 16

9: 指定在多長時間內(nèi),有多少次更新操作,就將數(shù)據(jù)同步到數(shù)據(jù)文件,可以多個條件配合

 save seconds changes 

Redis默認(rèn)配置文件中提供了三個條件:

save 900 1

save 300 10

save 60 10000

分別表示900秒(15分鐘)內(nèi)有1個更改,300秒(5分鐘)內(nèi)有10個更改以及60秒內(nèi)有10000個更改。

10: 指定存儲至本地數(shù)據(jù)庫時是否壓縮數(shù)據(jù),默認(rèn)為yes,Redis采用LZF壓縮,如果為了節(jié)省CPU時間,

可以關(guān)閉該選項,但會導(dǎo)致數(shù)據(jù)庫文件變的巨大

 rdbcompression yes

11: 指定本地數(shù)據(jù)庫文件名,默認(rèn)值為dump.rdb

 dbfilename dump.rdb

12: 指定本地數(shù)據(jù)庫存放目錄

 dir ./

13: 設(shè)置當(dāng)本機為slav服務(wù)時,設(shè)置master服務(wù)的IP地址及端口,在Redis啟動時,它會自動從master進行數(shù)據(jù)同步

 slaveof masterip masterport 

14: 當(dāng)master服務(wù)設(shè)置了密碼保護時,slav服務(wù)連接master的密碼

 masterauth master-password 

15: 設(shè)置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時需要通過AUTH password 命令提供密碼,默認(rèn)關(guān)閉

 requirepass foobared

16: 設(shè)置同一時間最大客戶端連接數(shù),默認(rèn)無限制,Redis可以同時打開的客戶端連接數(shù)為Redis進程可以打開的最大文件描述符數(shù),

如果設(shè)置 maxclients 0,表示不作限制。當(dāng)客戶端連接數(shù)到達限制時,Redis會關(guān)閉新的連接并向客戶端

返回max number of clients reached錯誤信息

 maxclients 128

17: 指定Redis最大內(nèi)存限制,Redis在啟動時會把數(shù)據(jù)加載到內(nèi)存中,達到最大內(nèi)存后,Redis會先嘗試清除已到期或即將到期的Key,

當(dāng)此方法處理 后,仍然到達最大內(nèi)存設(shè)置,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis新的vm機制,會把Key存放內(nèi)存,

Value會存放在swap區(qū)

 maxmemory bytes 

18: 指定是否在每次更新操作后進行日志記錄,Redis在默認(rèn)情況下是異步的把數(shù)據(jù)寫入磁盤,如果不開啟,可能會在斷電時導(dǎo)致一段時間內(nèi)的數(shù)據(jù)丟失。

因為 redis本身同步數(shù)據(jù)文件是按上面save條件來同步的,所以有的數(shù)據(jù)會在一段時間內(nèi)只存在于內(nèi)存中。默認(rèn)為no

 appendonly no

19: 指定更新日志文件名,默認(rèn)為appendonly.aof

 appendfilename appendonly.aof

20: 指定更新日志條件,共有3個可選值:

no:表示等操作系統(tǒng)進行數(shù)據(jù)緩存同步到磁盤(快)

always:表示每次更新操作后手動調(diào)用fsync()將數(shù)據(jù)寫到磁盤(慢,安全)

everysec:表示每秒同步一次(折衷,默認(rèn)值)

 appendfsync everysec

21: 指定是否啟用html' target='_blank'>虛擬內(nèi)存機制,默認(rèn)值為no,簡單的介紹一下,VM機制將數(shù)據(jù)分頁存放,由Redis將訪問量較少的頁即冷數(shù)據(jù)swap到磁盤上,

訪問多的頁面由磁盤自動換出到內(nèi)存中(在后面的文章我會仔細(xì)分析Redis的VM機制)

 vm-enabled no

22: 虛擬內(nèi)存文件路徑,默認(rèn)值為/tmp/redis.swap,不可多個Redis實例共享

 vm-swap-file /tmp/redis.swap

23: 將所有大于vm-max-memory的數(shù)據(jù)存入虛擬內(nèi)存,無論vm-max-memory設(shè)置多小,所有索引數(shù)據(jù)都是內(nèi)存存儲的(Redis的索引數(shù)據(jù) 就是keys),

也就是說,當(dāng)vm-max-memory設(shè)置為0的時候,其實是所有value都存在于磁盤。默認(rèn)值為0

 vm-max-memory 0

24: Redis swap文件分成了很多的page,一個對象可以保存在多個page上面,但一個page上不能被多個對象共享,

vm-page-size是要根據(jù)存儲的 數(shù)據(jù)大小來設(shè)定的,作者建議如果存儲很多小對象,page大小最好設(shè)置為32或者64bytes;

如果存儲很大大對象,則可以使用更大的page,如果不 確定,就使用默認(rèn)值

 vm-page-size 32

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

 vm-pages 134217728

26: 設(shè)置訪問swap文件的線程數(shù),最好不要超過機器的核數(shù),如果設(shè)置為0,那么所有對swap文件的操作都是串行的,

可能會造成比較長時間的延遲。默認(rèn)值為4

 vm-max-threads 4

27: 設(shè)置在向客戶端應(yīng)答時,是否把較小的包合并為一個包發(fā)送,默認(rèn)為開啟

 glueoutputbuf yes

28: 指定在超過一定的數(shù)量或者最大的元素超過某一臨界值時,采用一種特殊的哈希算法

 hash-max-zipmap-entries 64 hash-max-zipmap-value 512

29: 指定是否激活重置哈希,默認(rèn)為開啟(后面在介紹Redis的哈希算法時具體介紹)

 activerehashing yes

30: 指定包含其它的配置文件,可以在同一主機上多個Redis實例之間使用同一份配置文件,而同時各個實例又擁有自己的特定配置文件

 include /path/to/local.conf
#daemonize no 默認(rèn)情況下, redis 不是在后臺運行的,如果需要在后臺運行,把該項的值更改為 yesdaemonize yes# 當(dāng) redis 在后臺運行的時候, Redis 默認(rèn)會把 pid 文件放在 /var/run/redis.pid ,你可以配置到其他地址。# 當(dāng)運行多個 redis 服務(wù)時,需要指定不同的 pid 文件和端口pidfile /var/run/redis_6379.pid# 指定 redis 運行的端口,默認(rèn)是 6379port 6379# 在高并發(fā)的環(huán)境中,為避免慢客戶端的連接問題,需要設(shè)置一個高速后臺日志tcp-backlog 511# 指定 redis 只接收來自于該 IP 地址的請求,如果不進行設(shè)置,那么將處理所有請求# bind 192.168.1.100 10.0.0.1# bind 127.0.0.1# 設(shè)置客戶端連接時的超時時間,單位為秒。當(dāng)客戶端在這段時間內(nèi)沒有發(fā)出任何指令,那么關(guān)閉該連接# 0 是關(guān)閉此設(shè)置timeout 0# TCP keepalive# 在 Linux 上,指定值(秒)用于發(fā)送 ACKs 的時間。注意關(guān)閉連接需要雙倍的時間。默認(rèn)為 0 。tcp-keepalive 0# 指定日志記錄級別,生產(chǎn)環(huán)境推薦 notice# Redis 總共支持四個級別: debug 、 verbose 、 notice 、 warning ,默認(rèn)為 verbose# debug 記錄很多信息,用于開發(fā)和測試# varbose 有用的信息,不像 debug 會記錄那么多# notice 普通的 verbose ,常用于生產(chǎn)環(huán)境# warning 只有非常重要或者嚴(yán)重的信息會記錄到日志loglevel notice# 配置 log 文件地址# 默認(rèn)值為 stdout ,標(biāo)準(zhǔn)輸出,若后臺模式會輸出到 /dev/null 。logfile /var/log/redis/redis.log# 可用數(shù)據(jù)庫數(shù)# 默認(rèn)值為 16 ,默認(rèn)數(shù)據(jù)庫為 0 ,數(shù)據(jù)庫范圍在 0- ( database-1 )之間databases 16################################ 快照################################## 保存數(shù)據(jù)到磁盤,格式如下 :# save # 指出在多長時間內(nèi),有多少次更新操作,就將數(shù)據(jù)同步到數(shù)據(jù)文件 rdb 。# 相當(dāng)于條件觸發(fā)抓取快照,這個可以多個條件配合# 比如默認(rèn)配置文件中的設(shè)置,就設(shè)置了三個條件# save 900 1 900 秒內(nèi)至少有 1 個 key 被改變# save 300 10 300 秒內(nèi)至少有 300 個 key 被改變# save 60 10000 60 秒內(nèi)至少有 10000 個 key 被改變# save 900 1# save 300 10# save 60 10000# 后臺存儲錯誤停止寫。stop-writes-on-bgsave-error yes# 存儲至本地數(shù)據(jù)庫時(持久化到 rdb 文件)是否壓縮數(shù)據(jù),默認(rèn)為 yesrdbcompression yes# 對rdb數(shù)據(jù)進行校驗,耗費CPU資源,默認(rèn)為yesrdbchecksum yes# 本地持久化數(shù)據(jù)庫文件名,默認(rèn)值為 dump.rdbdbfilename dump.rdb# 工作目錄# 數(shù)據(jù)庫鏡像備份的文件放置的路徑。# 這里的路徑跟文件名要分開配置是因為 redis 在進行備份時,先會將當(dāng)前數(shù)據(jù)庫的狀態(tài)寫入到一個臨時文件中,等備份完成,# 再把該該臨時文件替換為上面所指定的文件,而這里的臨時文件和上面所配置的備份文件都會放在這個指定的路徑當(dāng)中。# AOF 文件也會存放在這個目錄下面# 注意這里必須制定一個目錄而不是文件dir /var/lib/redis-server/################################# 復(fù)制 ################################## 主從復(fù)制 . 設(shè)置該數(shù)據(jù)庫為其他數(shù)據(jù)庫的從數(shù)據(jù)庫 .# 設(shè)置當(dāng)本機為 slav 服務(wù)時,設(shè)置 master 服務(wù)的 IP 地址及端口,在 Redis 啟動時,它會自動從 master 進行數(shù)據(jù)同步# slaveof # 當(dāng) master 服務(wù)設(shè)置了密碼保護時 ( 用 requirepass 制定的密碼 )# slave 服務(wù)連接 master 的密碼# masterauth # 當(dāng)從庫同主機失去連接或者復(fù)制正在進行,從機庫有兩種運行方式:# 1) 如果 slave-serve-stale-data 設(shè)置為 yes( 默認(rèn)設(shè)置 ) ,從庫會繼續(xù)響應(yīng)客戶端的請求# 2) 如果 slave-serve-stale-data 是指為 no ,出去 INFO 和 SLAVOF 命令之外的任何請求都會返回一個# 錯誤 SYNC with master in progress slave-serve-stale-data yes# 配置 slave 實例是否接受寫。寫 slave 對存儲短暫數(shù)據(jù)(在同 master 數(shù)據(jù)同步后可以很容易地被刪除)是有用的,但未配置的情況下,客戶端寫可能會發(fā)送問題。# 從 Redis2.6 后,默認(rèn) slave 為 read-onlyslaveread-only yes# 從庫會按照一個時間間隔向主庫發(fā)送 PINGs. 可以通過 repl-ping-slave-period 設(shè)置這個時間間隔,默認(rèn)是 10 秒# repl-ping-slave-period 10# repl-timeout 設(shè)置主庫批量數(shù)據(jù)傳輸時間或者 ping 回復(fù)時間間隔,默認(rèn)值是 60 秒# 一定要確保 repl-timeout 大于 repl-ping-slave-period# repl-timeout 60# 在 slave socket 的 SYNC 后禁用 TCP_NODELAY# 如果選擇“ yes ” ,Redis 將使用一個較小的數(shù)字 TCP 數(shù)據(jù)包和更少的帶寬將數(shù)據(jù)發(fā)送到 slave , 但是這可能導(dǎo)致數(shù)據(jù)發(fā)送到 slave 端會有延遲 , 如果是 Linux kernel 的默認(rèn)配置,會達到 40 毫秒 .# 如果選擇 no ,則發(fā)送數(shù)據(jù)到 slave 端的延遲會降低,但將使用更多的帶寬用于復(fù)制 .repl-disable-tcp-nodelay no# 設(shè)置復(fù)制的后臺日志大小。# 復(fù)制的后臺日志越大, slave 斷開連接及后來可能執(zhí)行部分復(fù)制花的時間就越長。# 后臺日志在至少有一個 slave 連接時,僅僅分配一次。# repl-backlog-size 1mb# 在 master 不再連接 slave 后,后臺日志將被釋放。下面的配置定義從最后一個 slave 斷開連接后需要釋放的時間(秒)。# 0 意味著從不釋放后臺日志# repl-backlog-ttl 3600# 如果 master 不能再正常工作,那么會在多個 slave 中,選擇優(yōu)先值最小的一個 slave 提升為 master ,優(yōu)先值為 0 表示不能提升為 master 。slave-priority 100# 如果少于 N 個 slave 連接,且延遲時間 =M 秒,則 master 可配置停止接受寫操作。# 例如需要至少 3 個 slave 連接,且延遲 =10 秒的配置:# min-slaves-to-write 3# min-slaves-max-lag 10# 設(shè)置 0 為禁用# 默認(rèn) min-slaves-to-write 為 0 (禁用), min-slaves-max-lag 為 10################################## 安全 #################################### 設(shè)置客戶端連接后進行任何其他指定前需要使用的密碼。# 警告:因為 redis 速度相當(dāng)快,所以在一臺比較好的服務(wù)器下,一個外部的用戶可以在一秒鐘進行 150K 次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解# requirepass foobared# 命令重命名 .# 在一個共享環(huán)境下可以重命名相對危險的命令。比如把 CONFIG 重名為一個不容易猜測的字符。# 舉例 :# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52# 如果想刪除一個命令,直接把它重命名為一個空字符 即可,如下:# rename-command CONFIG ################################### 約束####################################設(shè)置同一時間最大客戶端連接數(shù),默認(rèn)無限制, #Redis 可以同時打開的客戶端連接數(shù)為 Redis 進程可以打開的最大文件描述符數(shù),#如果設(shè)置 maxclients 0 ,表示不作限制。#當(dāng)客戶端連接數(shù)到達限制時, Redis 會關(guān)閉新的連接并向客戶端返回 max number of clients reached 錯誤信息# maxclients 10000# 指定 Redis 最大內(nèi)存限制, Redis 在啟動時會把數(shù)據(jù)加載到內(nèi)存中,達到最大內(nèi)存后, Redis 會按照清除策略嘗試清除已到期的 Key# 如果 Redis 依照策略清除后無法提供足夠空間,或者策略設(shè)置為 ”noeviction” ,則使用更多空間的命令將會報錯,例如 SET, LPUSH 等。但仍然可以進行讀取操作# 注意: Redis 新的 vm 機制,會把 Key 存放內(nèi)存, Value 會存放在 swap 區(qū)# 該選項對 LRU 策略很有用。# maxmemory 的設(shè)置比較適合于把 redis 當(dāng)作于類似 memcached 的緩存來使用,而不適合當(dāng)做一個真實的 DB 。# 當(dāng)把 Redis 當(dāng)做一個真實的數(shù)據(jù)庫使用的時候,內(nèi)存使用將是一個很大的開銷# maxmemory # 當(dāng)內(nèi)存達到最大值的時候 Redis 會選擇刪除哪些數(shù)據(jù)?有五種方式可供選擇# volatile-lru - 利用 LRU 算法移除設(shè)置過過期時間的 key (LRU: 最近使用 Least RecentlyUsed )# allkeys-lru - 利用 LRU 算法移除任何 key# volatile-random - 移除設(shè)置過過期時間的隨機 key# allkeys- random - remove a randomkey, any key# volatile-ttl - 移除即將過期的 key(minor TTL)# noeviction - 不移除任何可以,只是返回一個寫錯誤# 注意:對于上面的策略,如果沒有合適的 key 可以移除,當(dāng)寫的時候 Redis 會返回一個錯誤# 默認(rèn)是 : volatile-lru# maxmemory-policy volatile-lru # LRU 和 minimal TTL 算法都不是精準(zhǔn)的算法,但是相對精確的算法 ( 為了節(jié)省內(nèi)存 ) ,隨意你可以選擇樣本大小進行檢測。# Redis 默認(rèn)的灰選擇 3 個樣本進行檢測,你可以通過 maxmemory-samples 進行設(shè)置# maxmemory-samples 3############################## AOF################################ 默認(rèn)情況下, redis 會在后臺異步的把數(shù)據(jù)庫鏡像備份到磁盤,但是該備份是非常耗時的,而且備份也不能很頻繁,如果發(fā)生諸如拉閘限電、拔插頭等狀況,那么將造成比較大范圍的數(shù)據(jù)丟失。# 所以 redis 提供了另外一種更加高效的數(shù)據(jù)庫備份及災(zāi)難恢復(fù)方式。# 開啟 append only 模式之后, redis 會把所接收到的每一次寫操作請求都追加到 appendonly.aof 文件中,當(dāng) redis 重新啟動時,會從該文件恢復(fù)出之前的狀態(tài)。# 但是這樣會造成 appendonly.aof 文件過大,所以 redis 還支持了 BGREWRITEAOF 指令,對 appendonly.aof 進行重新整理。# 你可以同時開啟 asynchronous dumps 和 AOFappendonly no# AOF 文件名稱 ( 默認(rèn) : appendonly.aof )# appendfilename appendonly.aof# Redis 支持三種同步 AOF 文件的策略 :# no: 不進行同步,系統(tǒng)去操作 . Faster.# always: always 表示每次有寫操作都進行同步 . Slow, Safest.# everysec: 表示對寫操作進行累積,每秒同步一次 . Compromise.# 默認(rèn)是 everysec ,按照速度和安全折中這是最好的。# 如果想讓 Redis 能更高效的運行,你也可以設(shè)置為 no ,讓操作系統(tǒng)決定什么時候去執(zhí)行# 或者相反想讓數(shù)據(jù)更安全你也可以設(shè)置為 always # 如果不確定就用 everysec .# appendfsync alwaysappendfsync everysec# appendfsync no# AOF 策略設(shè)置為 always 或者 everysec 時,后臺處理進程 ( 后臺保存或者 AOF 日志重寫 ) 會執(zhí)行大量的 I/O 操作# 在某些 Linux 配置中會阻止過長的 fsync() 請求。注意現(xiàn)在沒有任何修復(fù),即使 fsync 在另外一個線程進行處理# 為了減緩這個問題,可以設(shè)置下面這個參數(shù) no-appendfsync-on-rewriteno-appendfsync-on-rewrite no# AOF 自動重寫# 當(dāng) AOF 文件增長到一定大小的時候 Redis 能夠調(diào)用 BGREWRITEAOF 對日志文件進行重寫# 它是這樣工作的: Redis 會記住上次進行些日志后文件的大小 ( 如果從開機以來還沒進行過重寫,那日子大小在開機的時候確定 )# 基礎(chǔ)大小會同現(xiàn)在的大小進行比較。如果現(xiàn)在的大小比基礎(chǔ)大小大制定的百分比,重寫功能將啟動# 同時需要指定一個最小大小用于 AOF 重寫,這個用于阻止即使文件很小但是增長幅度很大也去重寫 AOF 文件的情況# 設(shè)置 percentage 為 0 就關(guān)閉這個特性auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb################################ LUASCRIPTING ############################## 一個 Lua 腳本最長的執(zhí)行時間為 5000 毫秒( 5 秒),如果為 0 或負(fù)數(shù)表示無限執(zhí)行時間。lua-time-limit 5000################################LOW LOG################################# Redis Slow Log 記錄超過特定執(zhí)行時間的命令。執(zhí)行時間不包括 I/O 計算比如連接客戶端,返回結(jié)果等,只是命令執(zhí)行時間# 可以通過兩個參數(shù)設(shè)置 slow log :一個是告訴 Redis 執(zhí)行超過多少時間被記錄的參數(shù) slowlog-log-slower-than( 微妙 ) ,# 另一個是 slow log 的長度。當(dāng)一個新命令被記錄的時候最早的命令將被從隊列中移除# 下面的時間以微妙為單位,因此 1000000 代表一秒。# 注意指定一個負(fù)數(shù)將關(guān)閉慢日志,而設(shè)置為 0 將強制每個命令都會記錄slowlog-log-slower-than 10000# 對日志長度沒有限制,只是要注意它會消耗內(nèi)存# 可以通過 SLOWLOG RESET 回收被慢日志消耗的內(nèi)存# 推薦使用默認(rèn)值 128 ,當(dāng)慢日志超過 128 時,最先進入隊列的記錄會被踢出slowlog-max-len 128################################ 事件通知 ############################## 當(dāng)事件發(fā)生時, Redis 可以通知 Pub/Sub 客戶端。# 可以在下表中選擇 Redis 要通知的事件類型。事件類型由單個字符來標(biāo)識:# K Keyspace 事件,以 _keyspace@_ 的前綴方式發(fā)布# E Keyevent 事件,以 _keysevent@_ 的前綴方式發(fā)布# g 通用事件(不指定類型),像 DEL, EXPIRE, RENAME, …# $ String 命令# s Set 命令# h Hash 命令# z 有序集合命令# x 過期事件(每次 key 過期時生成)# e 清除事件(當(dāng) key 在內(nèi)存被清除時生成)# A g$lshzxe 的別稱,因此 ”AKE” 意味著所有的事件# notify-keyspace-events 帶一個由 0 到多個字符組成的字符串參數(shù)。空字符串意思是通知被禁用。# 例子:啟用 list 和通用事件:# notify-keyspace-events Elg# 默認(rèn)所用的通知被禁用,因為用戶通常不需要改特性,并且該特性會有性能損耗。# 注意如果你不指定至少 K 或 E 之一,不會發(fā)送任何事件。notify-keyspace-events “”############################## 高級配置 ################################ 當(dāng) hash 中包含超過指定元素個數(shù)并且最大的元素沒有超過臨界時,# hash 將以一種特殊的編碼方式(大大減少內(nèi)存使用)來存儲,這里可以設(shè)置這兩個臨界值# Redis Hash 對應(yīng) Value 內(nèi)部實際就是一個 HashMap ,實際這里會有 2 種不同實現(xiàn),# 這個 Hash 的成員比較少時 Redis 為了節(jié)省內(nèi)存會采用類似一維數(shù)組的方式來緊湊存儲,而不會采用真正的 HashMap 結(jié)構(gòu),對應(yīng)的 valueredisObject 的 encoding 為 zipmap,# 當(dāng)成員數(shù)量增大時會自動轉(zhuǎn)成真正的 HashMap, 此時 encoding 為 ht 。hash-max-zipmap-entries 512hash-max-zipmap-value 64 # 和 Hash 一樣,多個小的 list 以特定的方式編碼來節(jié)省空間。# list 數(shù)據(jù)類型節(jié)點值大小小于多少字節(jié)會采用緊湊存儲格式。list-max-ziplist-entries 512list-max-ziplist-value 64# set 數(shù)據(jù)類型內(nèi)部數(shù)據(jù)如果全部是數(shù)值型,且包含多少節(jié)點以下會采用緊湊格式存儲。set-max-intset-entries 512# 和 hashe 和 list 一樣 , 排序的 set 在指定的長度內(nèi)以指定編碼方式存儲以節(jié)省空間# zsort 數(shù)據(jù)類型節(jié)點值大小小于多少字節(jié)會采用緊湊存儲格式。zset-max-ziplist-entries 128zset-max-ziplist-value 64# Redis 將在每 100 毫秒時使用 1 毫秒的 CPU 時間來對 redis 的 hash 表進行重新 hash ,可以降低內(nèi)存的使用# 當(dāng)你的使用場景中,有非常嚴(yán)格的實時性需要,不能夠接受 Redis 時不時的對請求有 2 毫秒的延遲的話,把這項配置為 no 。# 如果沒有這么嚴(yán)格的實時性要求,可以設(shè)置為 yes ,以便能夠盡可能快的釋放內(nèi)存activerehashing yes# 客戶端的輸出緩沖區(qū)的限制,因為某種原因客戶端從服務(wù)器讀取數(shù)據(jù)的速度不夠快,# 可用于強制斷開連接(一個常見的原因是一個發(fā)布 / 訂閱客戶端消費消息的速度無法趕上生產(chǎn)它們的速度)。# 可以三種不同客戶端的方式進行設(shè)置:# normal - 正常客戶端# slave - slave 和 MONITOR 客戶端# pubsub - 至少訂閱了一個 pubsub channel 或 pattern 的客戶端# 每個 client-output-buffer-limit 語法 :# client-output-buffer-limit # 一旦達到硬限制客戶端會立即斷開,或者達到軟限制并保持達成的指定秒數(shù)(連續(xù))。# 例如,如果硬限制為 32 兆字節(jié)和軟限制為 16 兆字節(jié) /10 秒,客戶端將會立即斷開# 如果輸出緩沖區(qū)的大小達到 32 兆字節(jié),客戶端達到 16 兆字節(jié)和連續(xù)超過了限制 10 秒,也將斷開連接。# 默認(rèn) normal 客戶端不做限制,因為他們在一個請求后未要求時(以推的方式)不接收數(shù)據(jù),# 只有異步客戶端可能會出現(xiàn)請求數(shù)據(jù)的速度比它可以讀取的速度快的場景。# 把硬限制和軟限制都設(shè)置為 0 來禁用該特性client-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb60client-output-buffer-limit pubsub 32mb 8mb60# Redis 調(diào)用內(nèi)部函數(shù)來執(zhí)行許多后臺任務(wù),如關(guān)閉客戶端超時的連接,清除過期的 Key ,等等。# 不是所有的任務(wù)都以相同的頻率執(zhí)行,但 Redis 依照指定的“ Hz ”值來執(zhí)行檢查任務(wù)。# 默認(rèn)情況下,“ Hz ”的被設(shè)定為 10 。# 提高該值將在 Redis 空閑時使用更多的 CPU 時,但同時當(dāng)有多個 key 同時到期會使 Redis 的反應(yīng)更靈敏,以及超時可以更精確地處理。# 范圍是 1 到 500 之間,但是值超過 100 通常不是一個好主意。# 大多數(shù)用戶應(yīng)該使用 10 這個預(yù)設(shè)值,只有在非常低的延遲的情況下有必要提高最大到 100 。hz 10 # 當(dāng)一個子節(jié)點重寫 AOF 文件時,如果啟用下面的選項,則文件每生成 32M 數(shù)據(jù)進行同步。aof-rewrite-incremental-fsync yes

以上就是Redis的使用過程中常用的redis.conf 配置修改總結(jié)的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜精品久久久久久中宇 | 久久亚洲网| 国产九色91 | 精品一区二区三区毛片 | 在线播放av片 | www.91sao| 国产九色在线观看 | 欧美日韩在线中文 | 88xx成人精品视频 | 精品久久久久久亚洲精品 | 亚洲精品xxx | 久久经典免费视频 | 亚洲午夜1000理论片aa | 一区二区三区四区高清视频 | www亚洲成人 | 男人的天堂色偷偷 | 欧美一级精品片在线看 | 亚洲精品成人18久久久久 | 午夜av男人的天堂 | 欧美一级淫片免费播放口 | 欧美一级aa免费毛片 | 欧美性猛交一区二区三区精品 | 国产亚洲精品一区二区三区 | 久久精品一区视频 | 亚洲一级片在线观看 | 国产91免费看 | 欧美中文字幕一区二区 | 成人在线免费小视频 | av成人一区二区 | 成人wxx视频免费 | 久久久在线免费观看 | 操皮视频 | 男女一边摸一边做羞羞视频免费 | 海外中文字幕在线观看 | 一级电影在线观看 | 久久影院一区二区三区 | 午夜91视频 | 免费永久在线观看黄网 | 最新毛片在线观看 | 极品一级片 | 99精品国产小情侣高潮露脸在线 |