新聞中心
Redis集群作為一種分布式的key/value內(nèi)存數(shù)據(jù)庫(kù),它可以滿足企業(yè)級(jí)的大數(shù)據(jù)讀取和寫(xiě)入需求,因此得到了越來(lái)越多的應(yīng)用場(chǎng)景。本文將針對(duì)Redis集群導(dǎo)入RDB文件,介紹一種利用“shell腳本 + redis-cli”的實(shí)踐方法。

把要導(dǎo)入的RDB文件放在redis實(shí)例的安全目錄下,包括redis節(jié)點(diǎn)安裝的目錄下的指定目錄,如/tmp等,進(jìn)行分別操作:
1.在集群中的每個(gè)節(jié)點(diǎn)進(jìn)入redis安裝目錄,啟動(dòng)redis-server服務(wù),如:
# ./redis-server –port 6378 –protected-mode no –loadmodule ./mymodule.so
2.編寫(xiě)Shell腳本
#! /bin/bash
#通過(guò)指定PORT參數(shù)導(dǎo)入指定RDB文件
Host="127.0.0.1"
Port=$1
Filename=$2
Logfile="import.log" #設(shè)定日志文件
echo "Start to import file $Filename";
#由于Redis-cli執(zhí)行rdb過(guò)程中使用copyonwrite,內(nèi)存可能被消耗很多
#在此使用增大內(nèi)存預(yù)分配,可以減少進(jìn)程掛起的概率
/usr/local/redis/bin/redis-cli -h $Host -p $Port --pipe --pipe-timeout 30 -a xxx
CONFIG SET maxmemory 0
CONFIG SET maxmemory-policy allkeys-lru
CONFIG REWRITE
bgrewriteaof
EOF
#接著執(zhí)行rdb導(dǎo)入操作
/usr/local/redis/bin/redis-cli -h $Host -p $Port --pipe --pipe-timeout 30 -a xxx
EOF
#定期把日志記錄到日志文件
echo "$Filename finished" >> $Logfiles
3.運(yùn)行Shell腳本
完成shell腳本的編寫(xiě)后,運(yùn)行腳本,可以一次性向redis集群導(dǎo)入rdb文件,如:
# ./import.sh 6379 dump.rdb
4.檢查結(jié)果
腳本執(zhí)行完后,可以登錄查看Redis集群中數(shù)據(jù)是否和RDB文件中一致:
# ./redis-cli -c -h 127.0.0.1 -p 6379
如果結(jié)果正確,說(shuō)明Redis集群中已經(jīng)包含RDB文件中所有的鍵值對(duì),RDB文件成功導(dǎo)入了Redis集群中。
以上是本文介紹的利用“shell腳本 + redis-cli”的實(shí)踐方法,可以用于Redis集群導(dǎo)入RDB文件的操作。通過(guò)本文的介紹,應(yīng)用開(kāi)發(fā)人員可以明白執(zhí)行RDB文件導(dǎo)入Redis集群的步驟,并更好地調(diào)整腳本來(lái)實(shí)現(xiàn)更高效的導(dǎo)入操作。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽(yáng)、重慶、貴陽(yáng)機(jī)房服務(wù)器托管租用。
文章名稱(chēng):使用Redis集群導(dǎo)入RDB文件的實(shí)踐(redis集群導(dǎo)入rdb)
文章轉(zhuǎn)載:http://m.5511xx.com/article/dhhcsse.html


咨詢(xún)
建站咨詢(xún)
