偷個(gè)懶,晚上工作忙的太晚,整個(gè)復(fù)制功能的內(nèi)容還沒有寫完,這里先說一下復(fù)制功能的簡單應(yīng)用。
在Redis中,用戶可以通過執(zhí)行SLAVEOF命令或者設(shè)置slaveof選項(xiàng),讓一個(gè)服務(wù)器去復(fù)制另一個(gè)服務(wù)器,我們稱呼被復(fù)制的服務(wù)器為主服務(wù)器(master),而對主服務(wù)器進(jìn)行復(fù)制的服務(wù)器則被稱為從服務(wù)器(slave)。
進(jìn)行復(fù)制中的主從服務(wù)器雙方的數(shù)據(jù)庫將保存相同的數(shù)據(jù),概念上我們將這種現(xiàn)象稱為數(shù)據(jù)庫狀態(tài)一致或簡稱一致。
現(xiàn)在我們簡單模擬主從同步:
1、拷貝一份redisServer的代碼出來,修改redis.windows.conf文件的post端口
這里我們修改端口號為6380。
這里說明下,redis啟動(dòng)有兩種方式:一種是以windows服務(wù)的方式運(yùn)行,另一種是不以服務(wù)的方式運(yùn)行(CMD啟動(dòng)),我們這里用一下不常用的服務(wù)的方式啟動(dòng)。
另外在windows安裝完redis后發(fā)現(xiàn)在安裝目錄下存在兩個(gè)配置文件,分別是
redis.windows-service.conf 和 redis.windows.conf ,前者是用于windows服務(wù)運(yùn)行,后者不以windows服務(wù)運(yùn)行。
然后執(zhí)行以下命令:
redis-server.exe --service-install redis.windows.conf --service-name redis6380 --loglevel verbose 安裝服務(wù)
redis-server.exe --service-start --service-name redis6380 啟動(dòng)服務(wù)
redis-server.exe --service-stop --service-name redis6380 停止服務(wù)
redis-server.exe --service-uninstall --service-name redis6380 卸載服務(wù)
此時(shí)端口號為6380的redisServer已經(jīng)啟動(dòng),
2、然后另一份代碼我們默認(rèn)執(zhí)行redis-server.exe(偷懶)啟動(dòng)端口號為6379的server端。
3、接下來我們在6380端口的服務(wù)器上執(zhí)行slaveof 127.0.0.1 6379,此時(shí)127.0.0.1 6380成為127.0.0.1 6379的從服務(wù)器。(PS:redis命令不區(qū)分大小寫~)
4、下面我們來校驗(yàn)主從是否同步:
(1)我們在主服務(wù)器(127.0.0.1 6379)服務(wù)器上執(zhí)行:set key value
(2)現(xiàn)在我們將控臺(tái)切換回(127.0.0.1 6380)
到此一個(gè)簡單的主從復(fù)制服務(wù)器就通了。
下一篇我們再看下主從復(fù)制的執(zhí)行過程、SLAVEOF命令的實(shí)現(xiàn)、新舊同步方式的差異以及redis主從同步過程中的心跳檢測。