午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

redis詳解及其主從復(fù)制和memcached主從復(fù)制

 WindySky 2016-05-17

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ù)制原理:


   在Slave啟動并連接到Master后,將主動發(fā)送SYNC命令。此后Master將啟動后臺存盤進程,將數(shù)據(jù)庫快照保存到文件中,同時收集新的寫命令(增、刪、改)并緩存起來,在后臺進程執(zhí)行寫文件。完畢后,Master將傳送整個數(shù)據(jù)庫文件到Slave,以完成一次完全同步。而Slave服務(wù)器在接收到數(shù)據(jù)庫文件數(shù)據(jù)之后將其存盤并加載到內(nèi)存恢復(fù)數(shù)據(jù)庫快照到slave上。此后,Master繼續(xù)將所有已經(jīng)收集到的修改命令,和新的修改命令依次傳送給Slaves,Slave將在本次執(zhí)行這些數(shù)據(jù)修改命令,從而達到最終的數(shù)據(jù)同步。從master到slave的同步數(shù)據(jù)的命令和從client發(fā)送的命令使用相同的協(xié)議格式。
   如果Master和Slave之間的鏈接出現(xiàn)斷連現(xiàn)象,Slave可以自動重連Master,但是在連接成功之后,一次完全同步(第一次將所有的數(shù)據(jù)都同步過去,后期值同步命令)將被自動執(zhí)行。



當然 從服務(wù)器也可以當下一個服務(wù)器的主服務(wù)器   (master->slave(master)->slave)   也可以一對多  (在要把服務(wù)器當做 slave服務(wù)器上的redis.conf  里 加上一行  slaveof   ip  port)  然后重啟  主從服務(wù)器就行了 ,在主上面  set  一下   看看slave 上有沒有
    如果master同時收到多個slave發(fā)來的同步連接命令,只會使用啟動一個進程來寫數(shù)據(jù)庫鏡像,然后發(fā)送給所有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


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多