posts - 495,comments - 227,trackbacks - 0
          昨天研究Redis,順便把配置文件翻譯了。這是我學(xué)習(xí)技術(shù)的一種方法。
          雖然還沒仔細(xì)校對(duì)和潤(rùn)色,不過意思應(yīng)該大體不錯(cuò),特來分享。
          求拍磚,讓磚頭來得更猛烈些吧!湊夠磚頭就可以回老家蓋房子了!

          在線版地址: https://github.com/liuxd/MyTranslation/blob/master/translation/redis-2.4.conf

          # Redis示例配置文件

          # 注意單位問題:當(dāng)需要設(shè)置內(nèi)存大小的時(shí)候,可以使用類似1k、5GB、4M這樣的常見格式:
          #
          #
           1k => 1000 bytes
          #
           1kb => 1024 bytes
          #
           1m => 1000000 bytes
          #
           1mb => 1024*1024 bytes
          #
           1g => 1000000000 bytes
          #
           1gb => 1024*1024*1024 bytes
          #
          #
           單位是大小寫不敏感的,所以1GB 1Gb 1gB的寫法都是完全一樣的。

          # Redis默認(rèn)是不作為守護(hù)進(jìn)程來運(yùn)行的。你可以把這個(gè)設(shè)置為"yes"讓它作為守護(hù)進(jìn)程來運(yùn)行。
          #
           注意,當(dāng)作為守護(hù)進(jìn)程的時(shí)候,Redis會(huì)把進(jìn)程ID寫到 /var/run/redis.pid
          daemonize no

          # 當(dāng)以守護(hù)進(jìn)程方式運(yùn)行的時(shí)候,Redis會(huì)把進(jìn)程ID默認(rèn)寫到 /var/run/redis.pid。你可以在這里修改路徑。
          pidfile /var/run/redis.pid

          # 接受連接的特定端口,默認(rèn)是6379。
          #
           如果端口設(shè)置為0,Redis就不會(huì)監(jiān)聽TCP套接字。
          port 6379

          # 如果你想的話,你可以綁定單一接口;如果這里沒單獨(dú)設(shè)置,那么所有接口的連接都會(huì)被監(jiān)聽。
          #
          #
           bind 127.0.0.1

          # 指定用來監(jiān)聽連接的unxi套接字的路徑。這個(gè)沒有默認(rèn)值,所以如果你不指定的話,Redis就不會(huì)通過unix套接字來監(jiān)聽。
          #
          #
           unixsocket /tmp/redis.sock
          #
           unixsocketperm 755

          #一個(gè)客戶端空閑多少秒后關(guān)閉連接。(0代表禁用,永不關(guān)閉)
          timeout 0

          # 設(shè)置服務(wù)器調(diào)試等級(jí)。
          #
           可能值:
          #
           debug (很多信息,對(duì)開發(fā)/測(cè)試有用)
          #
           verbose (很多精簡(jiǎn)的有用信息,但是不像debug等級(jí)那么多)
          #
           notice (適量的信息,基本上是你生產(chǎn)環(huán)境中需要的程度)
          #
           warning (只有很重要/嚴(yán)重的信息會(huì)記錄下來)
          loglevel verbose

          # 指明日志文件名。也可以使用"stdout"來強(qiáng)制讓Redis把日志信息寫到標(biāo)準(zhǔn)輸出上。
          #
           注意:如果Redis以守護(hù)進(jìn)程方式運(yùn)行,而你設(shè)置日志顯示到標(biāo)準(zhǔn)輸出的話,那么日志會(huì)發(fā)送到 /dev/null
          logfile stdout

          # 要使用系統(tǒng)日志記錄器很簡(jiǎn)單,只要設(shè)置 "syslog-enabled" 為 "yes" 就可以了。
          #
           然后根據(jù)需要設(shè)置其他一些syslog參數(shù)就可以了。
          #
           syslog-enabled no

          # 指明syslog身份
          #
           syslog-ident redis

          # 指明syslog的設(shè)備。必須是一個(gè)用戶或者是 LOCAL0 ~ LOCAL7 之一。
          #
           syslog-facility local0

          # 設(shè)置數(shù)據(jù)庫個(gè)數(shù)。默認(rèn)數(shù)據(jù)庫是 DB 0,你可以通過SELECT <dbid> WHERE dbid(0~'databases' - 1)來為每個(gè)連接使用不同的數(shù)據(jù)庫。
          databases 16

          ################################ 快照 #################################

          #
          #
           把數(shù)據(jù)庫存到磁盤上:
          #
          #
             save <seconds> <changes>
          #
             
          #
             會(huì)在指定秒數(shù)和數(shù)據(jù)變化次數(shù)之后把數(shù)據(jù)庫寫到磁盤上。
          #
          #
             下面的例子將會(huì)進(jìn)行把數(shù)據(jù)寫入磁盤的操作:
          #
             900秒(15分鐘)之后,且至少1次變更
          #
             300秒(5分鐘)之后,且至少10次變更
          #
             60秒之后,且至少10000次變更
          #
          #
             注意:你要想不寫磁盤的話就把所有 "save" 設(shè)置注釋掉就行了。

          save 
          900 1
          save 
          300 10
          save 
          60 10000

          # 當(dāng)導(dǎo)出到 .rdb 數(shù)據(jù)庫時(shí)是否用LZF壓縮字符串對(duì)象。
          #
           默認(rèn)設(shè)置為 "yes",所以幾乎總是生效的。
          #
           如果你想節(jié)省CPU的話你可以把這個(gè)設(shè)置為 "no",但是如果你有可壓縮的key的話,那數(shù)據(jù)文件就會(huì)更大了。
          rdbcompression yes

          # 數(shù)據(jù)庫的文件名
          dbfilename dump.rdb

          # 工作目錄
          #
          #
           數(shù)據(jù)庫會(huì)寫到這個(gè)目錄下,文件名就是上面的 "dbfilename" 的值。
          #
           
          #
           累加文件也放這里。
          #
           
          #
           注意你這里指定的必須是目錄,不是文件名。
          dir ./

          ################################# 同步 #################################

          #
          #
           主從同步。通過 slaveof 配置來實(shí)現(xiàn)Redis實(shí)例的備份。
          #
           注意,這里是本地從遠(yuǎn)端復(fù)制數(shù)據(jù)。也就是說,本地可以有不同的數(shù)據(jù)庫文件、綁定不同的IP、監(jiān)聽不同的端口。
          #
          #
           slaveof <masterip> <masterport>

          # 如果master設(shè)置了密碼(通過下面的 "requirepass" 選項(xiàng)來配置),那么slave在開始同步之前必須進(jìn)行身份驗(yàn)證,否則它的同步請(qǐng)求會(huì)被拒絕。
          #
          #
           masterauth <master-password>

          # 當(dāng)一個(gè)slave失去和master的連接,或者同步正在進(jìn)行中,slave的行為有兩種可能:
          #
          #
           1) 如果 slave-serve-stale-data 設(shè)置為 "yes" (默認(rèn)值),slave會(huì)繼續(xù)響應(yīng)客戶端請(qǐng)求,可能是正常數(shù)據(jù),也可能是還沒獲得值的空數(shù)據(jù)。
          #
           2) 如果 slave-serve-stale-data 設(shè)置為 "no",slave會(huì)回復(fù)"正在從master同步(SYNC with master in progress)"來處理各種請(qǐng)求,除了 INFO 和 SLAVEOF 命令。
          #
          slave-serve-stale-data yes

          # slave根據(jù)指定的時(shí)間間隔向服務(wù)器發(fā)送ping請(qǐng)求。
          #
           時(shí)間間隔可以通過 repl_ping_slave_period 來設(shè)置。
          #
           默認(rèn)10秒。
          #
          #
           repl-ping-slave-period 10

          # 下面的選項(xiàng)設(shè)置了大塊數(shù)據(jù)I/O、向master請(qǐng)求數(shù)據(jù)和ping響應(yīng)的過期時(shí)間。
          #
           默認(rèn)值60秒。
          #
          #
           一個(gè)很重要的事情是:確保這個(gè)值比 repl-ping-slave-period 大,否則master和slave之間的傳輸過期時(shí)間比預(yù)想的要短。
          #
          #
           repl-timeout 60

          ################################## 安全 ###################################

          # 要求客戶端在處理任何命令時(shí)都要驗(yàn)證身份和密碼。
          #
           這在你信不過來訪者時(shí)很有用。
          #
          #
           為了向后兼容的話,這段應(yīng)該注釋掉。而且大多數(shù)人不需要身份驗(yàn)證(例如:它們運(yùn)行在自己的服務(wù)器上。)
          #
           
          #
           警告:因?yàn)镽edis太快了,所以居心不良的人可以每秒嘗試150k的密碼來試圖破解密碼。
          #
           這意味著你需要一個(gè)高強(qiáng)度的密碼,否則破解太容易了。
          #
          #
           requirepass foobared

          # 命令重命名
          #
          #
           在共享環(huán)境下,可以為危險(xiǎn)命令改變名字。比如,你可以為 CONFIG 改個(gè)其他不太容易猜到的名字,這樣你自己仍然可以使用,而別人卻沒法做壞事了。
          #
          #
           例如:
          #
          #
           rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
          #
          #
           甚至也可以通過給命令賦值一個(gè)空字符串來完全禁用這條命令:
          #
          #
           rename-command CONFIG ""

          ################################### 限制 ####################################

          #
          #
           設(shè)置最多同時(shí)連接客戶端數(shù)量。
          #
           默認(rèn)沒有限制,這個(gè)關(guān)系到Redis進(jìn)程能夠打開的文件描述符數(shù)量。
          #
           特殊值"0"表示沒有限制。
          #
           一旦達(dá)到這個(gè)限制,Redis會(huì)關(guān)閉所有新連接并發(fā)送錯(cuò)誤"達(dá)到最大用戶數(shù)上限(max number of clients reached)"
          #
          #
           maxclients 128

          # 不要用比設(shè)置的上限更多的內(nèi)存。一旦內(nèi)存使用達(dá)到上限,Redis會(huì)根據(jù)選定的回收策略(參見:maxmemmory-policy)刪除key。
          #
          #
           如果因?yàn)閯h除策略問題Redis無法刪除key,或者策略設(shè)置為 "noeviction",Redis會(huì)回復(fù)需要更多內(nèi)存的錯(cuò)誤信息給命令。
          #
           例如,SET,LPUSH等等。但是會(huì)繼續(xù)合理響應(yīng)只讀命令,比如:GET。
          #
          #
           在使用Redis作為L(zhǎng)RU緩存,或者為實(shí)例設(shè)置了硬性內(nèi)存限制的時(shí)候(使用 "noeviction" 策略)的時(shí)候,這個(gè)選項(xiàng)還是滿有用的。
          #
          #
           警告:當(dāng)一堆slave連上達(dá)到內(nèi)存上限的實(shí)例的時(shí)候,響應(yīng)slave需要的輸出緩存所需內(nèi)存不計(jì)算在使用內(nèi)存當(dāng)中。
          #
           這樣當(dāng)請(qǐng)求一個(gè)刪除掉的key的時(shí)候就不會(huì)觸發(fā)網(wǎng)絡(luò)問題/重新同步的事件,然后slave就會(huì)收到一堆刪除指令,直到數(shù)據(jù)庫空了為止。
          #
          #
           簡(jiǎn)而言之,如果你有slave連上一個(gè)master的話,那建議你把master內(nèi)存限制設(shè)小點(diǎn)兒,確保有足夠的系統(tǒng)內(nèi)存用作輸出緩存。
          #
           (如果策略設(shè)置為"noeviction"的話就不無所謂了)
          #
          #
           maxmemory <bytes>

          # 內(nèi)存策略:如果達(dá)到內(nèi)存限制了,Redis如何刪除key。你可以在下面五個(gè)策略里面選:
          #
           
          #
           volatile-lru -> 根據(jù)LRU算法生成的過期時(shí)間來刪除。
          #
           allkeys-lru -> 根據(jù)LRU算法刪除任何key。
          #
           volatile-random -> 根據(jù)過期設(shè)置來隨機(jī)刪除key。
          #
           allkeys->random -> 無差別隨機(jī)刪。
          #
           volatile-ttl -> 根據(jù)最近過期時(shí)間來刪除(輔以TTL)
          #
           noeviction -> 誰也不刪,直接在寫操作時(shí)返回錯(cuò)誤。
          #
           
          #
           注意:對(duì)所有策略來說,如果Redis找不到合適的可以刪除的key都會(huì)在寫操作時(shí)返回一個(gè)錯(cuò)誤。
          #
          #
                 這里涉及的命令:set setnx setex append
          #
                 incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
          #
                 sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
          #
                 zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
          #
                 getset mset msetnx exec sort
          #
          #
           默認(rèn)值如下:
          #
          #
           maxmemory-policy volatile-lru

          # LRU和最小TTL算法的實(shí)現(xiàn)都不是很精確,但是很接近(為了省內(nèi)存),所以你可以用樣例做測(cè)試。
          #
           例如:默認(rèn)Redis會(huì)檢查三個(gè)key然后取最舊的那個(gè),你可以通過下面的配置項(xiàng)來設(shè)置樣本的個(gè)數(shù)。
          #
          #
           maxmemory-samples 3

          ############################## 純累加模式 ###############################

          # 默認(rèn)情況下,Redis是異步的把數(shù)據(jù)導(dǎo)出到磁盤上。這種情況下,當(dāng)Redis掛掉的時(shí)候,最新的數(shù)據(jù)就丟了。
          #
           如果不希望丟掉任何一條數(shù)據(jù)的話就該用純累加模式:一旦開啟這個(gè)模式,Redis會(huì)把每次寫入的數(shù)據(jù)在接收后都寫入 appendonly.aof 文件。
          #
           每次啟動(dòng)時(shí)Redis都會(huì)把這個(gè)文件的數(shù)據(jù)讀入內(nèi)存里。
          #
          #
           注意,異步導(dǎo)出的數(shù)據(jù)庫文件和純累加文件可以并存(你得把上面所有"save"設(shè)置都注釋掉,關(guān)掉導(dǎo)出機(jī)制)。
          #
           如果純累加模式開啟了,那么Redis會(huì)在啟動(dòng)時(shí)載入日志文件而忽略導(dǎo)出的 dump.rdb 文件。
          #
          #
           重要:查看 BGREWRITEAOF 來了解當(dāng)累加日志文件太大了之后,怎么在后臺(tái)重新處理這個(gè)日志文件。

          appendonly no

          # 純累加文件名字(默認(rèn):"appendonly.aof")
          #
           appendfilename appendonly.aof

          # fsync() 請(qǐng)求操作系統(tǒng)馬上把數(shù)據(jù)寫到磁盤上,不要再等了。
          #
           有些操作系統(tǒng)會(huì)真的把數(shù)據(jù)馬上刷到磁盤上;有些則要磨蹭一下,但是會(huì)盡快去做。
          #
          #
           Redis支持三種不同的模式:
          #
          #
           no:不要立刻刷,只有在操作系統(tǒng)需要刷的時(shí)候再刷。比較快。
          #
           always:每次寫操作都立刻寫入到aof文件。慢,但是最安全。
          #
           everysec:每秒寫一次。折衷方案。
          #
          #
           默認(rèn)的 "everysec" 通常來說能在速度和數(shù)據(jù)安全性之間取得比較好的平衡。
          #
           如果你真的理解了這個(gè)意味著什么,那么設(shè)置"no"可以獲得更好的性能表現(xiàn)(如果丟數(shù)據(jù)的話,則只能拿到一個(gè)不是很新的快照);
          #
           或者相反的,你選擇 "always" 來犧牲速度確保數(shù)據(jù)安全、完整。
          #
          #
           如果拿不準(zhǔn),就用 "everysec"

          # appendfsync always
          appendfsync everysec
          # appendfsync no

          # 如果AOF的同步策略設(shè)置成 "always" 或者 "everysec",那么后臺(tái)的存儲(chǔ)進(jìn)程(后臺(tái)存儲(chǔ)或?qū)懭階OF日志)會(huì)產(chǎn)生很多磁盤I/O開銷。
          #
           某些Linux的配置下會(huì)使Redis因?yàn)?nbsp;fsync() 而阻塞很久。
          #
           注意,目前對(duì)這個(gè)情況還沒有完美修正,甚至不同線程的 fsync() 會(huì)阻塞我們的 write(2) 請(qǐng)求。
          #
          #
           為了緩解這個(gè)問題,可以用下面這個(gè)選項(xiàng)。它可以在 BGSAVE 或 BGREWRITEAOF 處理時(shí)阻止 fsync()。
          #
           
          #
           這就意味著如果有子進(jìn)程在進(jìn)行保存操作,那么Redis就處于"不可同步"的狀態(tài)。
          #
           這實(shí)際上是說,在最差的情況下可能會(huì)丟掉30秒鐘的日志數(shù)據(jù)。(默認(rèn)Linux設(shè)定)
          #
           
          #
           如果你有延遲的問題那就把這個(gè)設(shè)為 "yes",否則就保持 "no",這是保存持久數(shù)據(jù)的最安全的方式。
          no-appendfsync-on-rewrite no

          # 自動(dòng)重寫AOF文件
          #
          #
           如果AOF日志文件大到指定百分比,Redis能夠通過 BGREWRITEAOF 自動(dòng)重寫AOF日志文件。
          #
           
          #
           工作原理:Redis記住上次重寫時(shí)AOF日志的大?。ɑ蛘咧貑⒑鬀]有寫操作的話,那就直接用此時(shí)的AOF文件),
          #
                     基準(zhǔn)尺寸和當(dāng)前尺寸做比較。如果當(dāng)前尺寸超過指定比例,就會(huì)觸發(fā)重寫操作。
          #
          #
           你還需要指定被重寫日志的最小尺寸,這樣避免了達(dá)到約定百分比但尺寸仍然很小的情況還要重寫。
          #
          #
           指定百分比為0會(huì)禁用AOF自動(dòng)重寫特性。

          auto
          -aof-rewrite-percentage 100
          auto
          -aof-rewrite-min-size 64mb

          ################################## 慢查詢?nèi)罩?nbsp;###################################

          # Redis慢查詢?nèi)罩究梢杂涗洺^指定時(shí)間的查詢。運(yùn)行時(shí)間不包括各種I/O時(shí)間。
          #
           例如:連接客戶端,發(fā)送響應(yīng)數(shù)據(jù)等。只計(jì)算命令運(yùn)行的實(shí)際時(shí)間(這是唯一一種命令運(yùn)行線程阻塞而無法同時(shí)為其他請(qǐng)求服務(wù)的場(chǎng)景)
          #
           
          #
           你可以為慢查詢?nèi)罩九渲脙蓚€(gè)參數(shù):一個(gè)是超標(biāo)時(shí)間,單位為微妙,記錄超過個(gè)時(shí)間的命令。
          #
           另一個(gè)是慢查詢?nèi)罩鹃L(zhǎng)度。當(dāng)一個(gè)新的命令被寫進(jìn)日志的時(shí)候,最老的那個(gè)記錄會(huì)被刪掉。
          #
          #
           下面的時(shí)間單位是微秒,所以1000000就是1秒。注意,負(fù)數(shù)時(shí)間會(huì)禁用慢查詢?nèi)罩荆?則會(huì)強(qiáng)制記錄所有命令。
          slowlog-log-slower-than 10000

          # 這個(gè)長(zhǎng)度沒有限制。只要有足夠的內(nèi)存就行。你可以通過 SLOWLOG RESET 來釋放內(nèi)存。(譯者注:日志居然是在內(nèi)存里的Orz)
          slowlog-max-len 128

          ################################ 虛擬內(nèi)存 ###############################

          ### 警告!虛擬內(nèi)存在Redis 2.4是反對(duì)的。
          #
          ## 非常不鼓勵(lì)使用虛擬內(nèi)存?。?/span>

          # 虛擬內(nèi)存可以使Redis在內(nèi)存不夠的情況下仍然可以將所有數(shù)據(jù)序列保存在內(nèi)存里。
          #
           為了做到這一點(diǎn),高頻key會(huì)調(diào)到內(nèi)存里,而低頻key會(huì)轉(zhuǎn)到交換文件里,就像操作系統(tǒng)使用內(nèi)存頁一樣。
          #
          #
           要使用虛擬內(nèi)存,只要把 "vm-enabled" 設(shè)置為 "yes",并根據(jù)需要設(shè)置下面三個(gè)虛擬內(nèi)存參數(shù)就可以了。

          vm
          -enabled no
          # vm-enabled yes

          # 這是交換文件的路徑。估計(jì)你猜到了,交換文件不能在多個(gè)Redis實(shí)例之間共享,所以確保每個(gè)Redis實(shí)例使用一個(gè)獨(dú)立交換文件。
          #
          #
           最好的保存交換文件(被隨機(jī)訪問)的介質(zhì)是固態(tài)硬盤(SSD)。
          #
          #
           *** 警告 *** 如果你使用共享主機(jī),那么默認(rèn)的交換文件放到 /tmp 下是不安全的。
          #
           創(chuàng)建一個(gè)Redis用戶可寫的目錄,并配置Redis在這里創(chuàng)建交換文件。
          vm-swap-file /tmp/redis.swap

          # "vm-max-memory" 配置虛擬內(nèi)存可用的最大內(nèi)存容量。
          #
           如果交換文件還有空間的話,所有超標(biāo)部分都會(huì)放到交換文件里。
          #
          #
           "vm-max-memory" 設(shè)置為0表示系統(tǒng)會(huì)用掉所有可用內(nèi)存。
          #
           這默認(rèn)值不咋地,只是把你能用的內(nèi)存全用掉了,留點(diǎn)余量會(huì)更好。
          #
           例如,設(shè)置為剩余內(nèi)存的60%-80%。
          vm-max-memory 0

          # Redis交換文件是分成多個(gè)數(shù)據(jù)頁的。
          #
           一個(gè)可存儲(chǔ)對(duì)象可以被保存在多個(gè)連續(xù)頁里,但是一個(gè)數(shù)據(jù)頁無法被多個(gè)對(duì)象共享。
          #
           所以,如果你的數(shù)據(jù)頁太大,那么小對(duì)象就會(huì)浪費(fèi)掉很多空間。
          #
           如果數(shù)據(jù)頁太小,那用于存儲(chǔ)的交換空間就會(huì)更少(假定你設(shè)置相同的數(shù)據(jù)頁數(shù)量)
          #
          #
           如果你使用很多小對(duì)象,建議分頁尺寸為64或32個(gè)字節(jié)。
          #
           如果你使用很多大對(duì)象,那就用大一些的尺寸。
          #
           如果不確定,那就用默認(rèn)值 :)
          vm-page-size 32

          # 交換文件里數(shù)據(jù)頁總數(shù)。
          #
           根據(jù)內(nèi)存中分頁表(已用/未用的數(shù)據(jù)頁分布情況),磁盤上每8個(gè)數(shù)據(jù)頁會(huì)消耗內(nèi)存里1個(gè)字節(jié)。
          #
          #
           交換區(qū)容量 = vm-page-size * vm-pages
          #
          #
           根據(jù)默認(rèn)的32字節(jié)的數(shù)據(jù)頁尺寸和134217728的數(shù)據(jù)頁數(shù)來算,Redis的數(shù)據(jù)頁文件會(huì)占4GB,而內(nèi)存里的分頁表會(huì)消耗16MB內(nèi)存。
          #
          #
           為你的應(yīng)驗(yàn)程序設(shè)置最小且夠用的數(shù)字比較好,下面這個(gè)默認(rèn)值在大多數(shù)情況下都是偏大的。
          vm-pages 134217728

          # 同時(shí)可運(yùn)行的虛擬內(nèi)存I/O線程數(shù)。
          #
           這些線程可以完成從交換文件進(jìn)行數(shù)據(jù)讀寫的操作,也可以處理數(shù)據(jù)在內(nèi)存與磁盤間的交互和編碼/解碼處理。
          #
           多一些線程可以一定程度上提高處理效率,雖然I/O操作本身依賴于物理設(shè)備的限制,不會(huì)因?yàn)楦嗟木€程而提高單次讀寫操作的效率。
          #
          #
           特殊值0會(huì)關(guān)閉線程級(jí)I/O,并會(huì)開啟阻塞虛擬內(nèi)存機(jī)制。
          vm-max-threads 4

          ############################### 高級(jí)配置 ###############################

          # 當(dāng)有大量數(shù)據(jù)時(shí),適合用哈希編碼(需要更多的內(nèi)存),元素?cái)?shù)量上限不能超過給定限制。
          #
           你可以通過下面的選項(xiàng)來設(shè)定這些限制:
          hash-max-zipmap-entries 512
          hash
          -max-zipmap-value 64

          # 與哈希相類似,數(shù)據(jù)元素較少的情況下,可以用另一種方式來編碼從而節(jié)省大量空間。
          #
           這種方式只有在符合下面限制的時(shí)候才可以用:
          list-max-ziplist-entries 512
          list
          -max-ziplist-value 64

          # 還有這樣一種特殊編碼的情況:數(shù)據(jù)全是64位無符號(hào)整型數(shù)字構(gòu)成的字符串。
          #
           下面這個(gè)配置項(xiàng)就是用來限制這種情況下使用這種編碼的最大上限的。
          set-max-intset-entries 512

          # 與第一、第二種情況相似,有序序列也可以用一種特別的編碼方式來處理,可節(jié)省大量空間。
          #
           這種編碼只適合長(zhǎng)度和元素都符合下面限制的有序序列:
          zset-max-ziplist-entries 128
          zset
          -max-ziplist-value 64

          # 哈希刷新,每100個(gè)CPU毫秒會(huì)拿出1個(gè)毫秒來刷新Redis的主哈希表(頂級(jí)鍵值映射表)。
          #
           redis所用的哈希表實(shí)現(xiàn)(見dict.c)采用延遲哈希刷新機(jī)制:你對(duì)一個(gè)哈希表操作越多,哈希刷新操作就越頻繁;
          #
           反之,如果服務(wù)器非常不活躍那么也就是用點(diǎn)內(nèi)存保存哈希表而已。
          #
           
          #
           默認(rèn)是每秒鐘進(jìn)行10次哈希表刷新,用來刷新字典,然后盡快釋放內(nèi)存。
          #
          #
           建議:
          #
           如果你對(duì)延遲比較在意的話就用 "activerehashing no",每個(gè)請(qǐng)求延遲2毫秒不太好嘛。
          #
           如果你不太在意延遲而希望盡快釋放內(nèi)存的話就設(shè)置 "activerehashing yes"。
          activerehashing yes

          ################################## 包含 ###################################

          # 包含一個(gè)或多個(gè)其他配置文件。
          #
           這在你有標(biāo)準(zhǔn)配置模板但是每個(gè)redis服務(wù)器又需要個(gè)性設(shè)置的時(shí)候很有用。
          #
           包含文件特性允許你引人其他配置文件,所以好好利用吧。
          #
          #
           include /path/to/local.conf
          #
           include /path/to/other.conf
          posted on 2012-06-05 18:40 SIMONE 閱讀(5848) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 琼海市| 蓬溪县| 抚宁县| 宁安市| 无棣县| 滦南县| 拉孜县| 赣州市| 施秉县| 三河市| 原阳县| 新龙县| 武胜县| 深圳市| 临泉县| 吉林市| 灵寿县| 平泉县| 阿勒泰市| 历史| 阳朔县| 柳江县| 淄博市| 长海县| 宣威市| 宁波市| 玉林市| 新宾| 昌邑市| 蓝田县| 郑州市| 汉中市| 灵石县| 六安市| 紫金县| 庆阳市| 万荣县| 衡水市| 东宁县| 庆安县| 顺平县|