redis 的安裝步奏和用處:http://www./ 轉(zhuǎn)載
關(guān)閉redis服務(wù):
$src/redis-cli shutdown
指定端口:
$src/redis-cli -p 6380 shutdown
配置redis:
daemonize yes #作為守護進程(后臺程序)執(zhí)行,進程id寫進/var/run/redis.pid中,默認為no。
pidfile /var/run/redis.pid #指定pid文件。
port 6379 #指定端口。
bind 127.0.0.1 #綁定連接。
timeout 0 #超時斷開連接,如果為0表示永不超時。
loglevel debug|verbose|notice|warning #日志信息越來越少:debug>verbose>notice>warning。
logfile stdout #指定日志文件,stdout表標準輸出(如果daemonize,日志會被發(fā)送到/dev/null)。
databases 16 #設(shè)置數(shù)據(jù)庫數(shù)量,默認數(shù)據(jù)庫是DB 0,連接時可以使用SELECT <dbid>(dbid從0到databases-1)選擇不同的數(shù)據(jù)庫。
#### SNAPSHOTTING ####
save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發(fā),即900秒之后至少1個關(guān)鍵字發(fā)生變化。
save 300 10 #必須是300秒之后至少10個關(guān)鍵字發(fā)生變化。
save 60 10000 #必須是60秒之后至少10000個關(guān)鍵字發(fā)生變化。
stop-writes-on-bgsave-error yes #后臺存儲錯誤停止寫。
rdbcompression yes #使用LZF壓縮rdb文件。
rdbchecksum yes #存儲和加載rdb文件時校驗。
dbfilename dump.rdb #設(shè)置rdb文件名。
dir ./ #設(shè)置工作目錄,rdb文件會寫入該目錄。
#### REPLICATION ####
slaveof <masterip> <masterport> #創(chuàng)建slave,它是master的備份。
masterauth <master-password> #如果master設(shè)置了密碼,slave需要進行認證。
slave-serve-stale-data yes #當slave失去與master的連接,或正在拷貝中,如果為yes,slave會響應(yīng)客戶端的請求,數(shù)據(jù)可能不同步甚至沒有數(shù)據(jù),如果為no,slave會返回錯誤"SYNC with master in progress"。
slave-read-only yes #如果為yes,slave實例只讀,如果為no,slave實例可讀可寫。
repl-ping-slave-period 10 #slave發(fā)送ping給master的時間間隔,單位是秒。
repl-timeout 60 #Bulk transfer I/O超時,或ping響應(yīng)超時,單位是秒,值必須要比repl-ping-slave-period大。
slave-priority 100 #如果master不能再正常工作,那么會在多個slave中,選擇優(yōu)先值最小的一個slave提升為master,優(yōu)先值為0表示不能提升為master。
#### SECURITY ####
requirepass <password> #設(shè)置訪問密碼,密碼要足夠強。
rename-command <dangerous-command> <strange-command> #給一些危險的指令進行重命名,如果重命名為“”,取消該命令。
#### LIMITS ####
maxclients 10000 #客戶端并發(fā)連接數(shù)的上限是10000,到達上限,服務(wù)器會關(guān)閉所有新連接并返回錯誤"max number of clients reached"。
maxmemory <bytes> #設(shè)置最大內(nèi)存,到達上限,服務(wù)器會根據(jù)驅(qū)逐政策(eviction policy)刪除某些鍵值,如果政策被設(shè)置為noeviction,那么redis只讀,對于增加內(nèi)存的操作請求返回錯誤。
maxmemory-policy volatile-lru|allkeys-lru|volatile-random|allkeys-random|volatile-ttl|noeviction #設(shè)置驅(qū)逐政策(eviction policy)。
maxmemory-samples 3 #LRU和minimal TTL是近似算法(為了節(jié)省內(nèi)存),它們會在一個有3個鍵值的樣本中選擇較沒用的那個。
#### APPEND ONLY MODE ####
appendonly no #redis默認采用快照(snapshotting)異步轉(zhuǎn)存到硬盤中,它是根據(jù)save指令來觸發(fā)持久化的,當Redis異常中斷或停電時,可能會導(dǎo)致最后一些寫操作丟失。AOF(Append Only File,只追加文件)可以提供更好的持久性,結(jié)合apendfsync指令可以把幾分鐘的數(shù)據(jù)丟失降至一秒鐘的數(shù)據(jù)丟失,它通過日志把所有的操作記錄下來,AOF和RDB持久化可以同時啟動。
appendfilename appendonly.aof #指定aof的文件名。
apendfsync always|everysec|no #調(diào)用fsync()寫數(shù)據(jù)到硬盤中,always是每一次寫操作就馬上同步到日志中,everysec是每隔一秒強制fsync,no是不調(diào)用fsync(),讓操作系統(tǒng)自己決定何時同步。
no-appendfsync-on-rewrite no #如果為yes,當BGSAVE或BGREWRITEAOF指令運行時,即把AOF文件轉(zhuǎn)寫到RDB文件中時,會阻止調(diào)用fsync()。
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb #Redis會將AOF文件最初的大小記錄下來,如果當前的AOF文件的大小增加100%并且超過64mb時,就會自動觸發(fā)Redis改寫AOF文件到RDB文件中,如果auto-aof-rewrite-percentage為0表示取消自動rewrite功能。
#### LUA SCRIPTING ####
lua-time-limit 5000 #一個Lua腳本最長的執(zhí)行時間為5000毫秒(5秒),如果為0或負數(shù)表示無限執(zhí)行時間。
#### SLOW LOG ####
slowlog-log-slower-than 10000 #當某個請求執(zhí)行時間(不包括IO時間)超過10000微妙(10毫秒),把請求記錄在慢日志中 ,如果為負數(shù)不使用慢日志,如果為0強制記錄每個指令。
slowlog-max-len 128 #慢日志的最大長度是128,當慢日志超過128時,最先進入隊列的記錄會被踢出來,慢日志會消耗內(nèi)存,你可以使用SLOWLOG RESET清空隊列回收這些內(nèi)存。
#### ADVANCED CONFIG ####
hash-max-ziplist-entries 512
hash-max-ziplist-value 64 #較小的hash可以通過某種特殊的方式進行編碼,以節(jié)省大量的內(nèi)存空間,我們指定最大的條目數(shù)為512,每個條目的最大長度為64。
list-max-ziplist-entries 512
list-max-ziplist-value 64 #同上。
zset-max-ziplist-entries 128
zset-max-ziplist-value 64 #同上。
activerehashing yes #重新哈希the main Redis hash table(the one mapping top-level keys to values),這樣會節(jié)省更多的空間。
client-output-buffer-limit normal 0 0 0 #對客戶端輸出緩沖進行限制可以強迫那些就不從服務(wù)器讀取數(shù)據(jù)的客戶端斷開連接。對于normal client,第一個0表示取消hard limit,第二個0和第三個0表示取消soft limit,normal client默認取消限制,因為如果沒有尋問,他們是不會接收數(shù)據(jù)的。
client-output-buffer-limit slave 256mb 64mb 60 #對于slave client和MONITER client,如果client-output-buffer一旦超過256mb,又或者超過64mb持續(xù)60秒,那么服務(wù)器就會立即斷開客戶端連接。
client-output-buffer-limit pubsub 32mb 8mb 60 #對于pubsub client,如果client-output-buffer一旦超過32mb,又或者超過8mb持續(xù)60秒,那么服務(wù)器就會立即斷開客戶端連接。
#### INCLUDES ####
include /path/to/conf #包含一些可以重用的配置文件。
redis主從復(fù)制原理:
當然 從服務(wù)器也可以當下一個服務(wù)器的主服務(wù)器 (master->slave(master)->slave) 也可以一對多 (在要把服務(wù)器當做 slave服務(wù)器上的redis.conf 里 加上一行 slaveof ip port) 然后重啟 主從服務(wù)器就行了 ,在主上面 set 一下 看看slave 上有沒有 memcached: master ./memcached -d -c 265 -u root -l 127.0.0.1 -p 11211 -P /tmp/memcached.pid (192.168.1.37) slave /memcached -d -c 265 -u root -l 127.0.0.1 -p 11211 -x 192.168.1.37 -X 11212 -P /tmp/memcached.pid |
|