本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種更新和同步白名單的方法、裝置和系統(tǒng)。
背景技術(shù):
在瀏覽器中,白名單被認(rèn)為是可以安全訪(fǎng)問(wèn)、無(wú)需網(wǎng)址安全校驗(yàn)的網(wǎng)址數(shù)據(jù)。白名單通過(guò)網(wǎng)絡(luò)管理后臺(tái)維護(hù),運(yùn)營(yíng)人員可以對(duì)白名單進(jìn)行新增、刪除、修改、導(dǎo)入、導(dǎo)出以及查詢(xún)操作。其中,新增、刪除、修改和導(dǎo)入(新增的一種,批量新增)會(huì)引起白名單的數(shù)據(jù)變更,客戶(hù)端通過(guò)獲取變更后的數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)的同步。
現(xiàn)有技術(shù)中,運(yùn)營(yíng)人員在服務(wù)端操作白名單時(shí),將對(duì)白名單的更新信息寫(xiě)入操作日志??蛻?hù)端同步白名單時(shí),根據(jù)自身保存的日志標(biāo)識(shí),從服務(wù)端拉取大于該日志標(biāo)識(shí)的所有日志記錄,并根據(jù)拉取到的日志記錄中的更新信息同步自身保存的白名單。
現(xiàn)有技術(shù)存在以下缺陷:服務(wù)端會(huì)累積大量的操作日志,影響寫(xiě)入和查詢(xún)性能;一條白名單可能同時(shí)出現(xiàn)在多個(gè)操作日志中,會(huì)產(chǎn)生數(shù)倍的日志記錄,如果客戶(hù)端一次性拉取大量操作日志,需要根據(jù)時(shí)間先后順序頻繁更新數(shù)據(jù)庫(kù),不僅會(huì)大量消耗流量,還會(huì)帶來(lái)嚴(yán)重的性能問(wèn)題,影響用戶(hù)體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種更新和同步白名單的方法、裝置和系統(tǒng),旨在解決現(xiàn)有技術(shù)更新和同步白名單時(shí)大量消耗流量和影響客戶(hù)端性能的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種更新白名單的方法,應(yīng)用于服務(wù)端,包括:
當(dāng)檢測(cè)到新增操作時(shí),獲取新增的白名單鏈接,生成第一時(shí)間戳,將所述新增的白名單鏈接、所述第一時(shí)間戳與新增操作符對(duì)應(yīng)保存;
當(dāng)檢測(cè)到刪除操作時(shí),將與所述刪除操作對(duì)應(yīng)的操作符更新為刪除操作符,生成第二時(shí)間戳,將與所述刪除操作對(duì)應(yīng)的時(shí)間戳更新為所述第二時(shí)間戳。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種更新白名單的裝置,應(yīng)用于服務(wù)端,用于執(zhí)行所述的更新白名單的方法。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種同步白名單的方法,應(yīng)用于客戶(hù)端,包括:
客戶(hù)端接收來(lái)自服務(wù)端的白名單標(biāo)識(shí)、白名單鏈接和操作符;
當(dāng)所述操作符為新增操作符時(shí),所述客戶(hù)端將接收到的白名單標(biāo)識(shí)和白名單鏈接對(duì)應(yīng)保存;
當(dāng)所述操作符為刪除操作符時(shí),所述客戶(hù)端將自身保存的與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接刪除。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種同步白名單的裝置,應(yīng)用于客戶(hù)端,用于執(zhí)行所述的同步白名單的方法。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種更新和同步白名單的系統(tǒng),包括:
服務(wù)端,用于執(zhí)行所述的更新白名單的方法;
客戶(hù)端,用于執(zhí)行所述的同步白名單的方法。
本發(fā)明提出的更新和同步白名單的方法、裝置和系統(tǒng),針對(duì)每條白名單鏈接設(shè)置對(duì)應(yīng)的操作符和時(shí)間戳,并在更新白名單時(shí),更新與白名單鏈接對(duì)應(yīng)的操作符和時(shí)間戳,不再新建操作日志,避免在服務(wù)端累積大量的操作日志,提高了服務(wù)端的寫(xiě)入和查詢(xún)性能,去除了大量冗余數(shù)據(jù),提高了客戶(hù)端的運(yùn)行效率。
附圖說(shuō)明
圖1為本發(fā)明第一實(shí)施例中的一種更新白名單的方法流程圖;
圖2為本發(fā)明第二實(shí)施例中的一種更新白名單的方法流程圖;
圖3為本發(fā)明第三實(shí)施例中的一種處理白名單更新請(qǐng)求的方法流程圖;
圖4為本發(fā)明第四實(shí)施例中的一種同步白名單的方法流程圖;
圖5為本發(fā)明第五實(shí)施例中的一種同步白名單的方法流程圖;
圖6為本發(fā)明第六實(shí)施例中的一種更新白名單的裝置結(jié)構(gòu)圖;
圖7為本發(fā)明第七實(shí)施例中的一種同步白名單的裝置結(jié)構(gòu)圖;
圖8為本發(fā)明第八實(shí)施例中的一種更新和同步白名單的系統(tǒng)結(jié)構(gòu)圖;
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,本發(fā)明第一實(shí)施例提出一種更新白名單的方法,應(yīng)用于服務(wù)端,該方法包括:
步驟101,當(dāng)檢測(cè)到新增操作時(shí),獲取新增的白名單鏈接,生成第一時(shí)間戳,將新增的白名單鏈接、第一時(shí)間戳與新增操作符對(duì)應(yīng)保存。
具體地,當(dāng)檢測(cè)到新增操作時(shí),可以獲取新增的白名單鏈接,為新增的白名單鏈接分配白名單標(biāo)識(shí),生成第一時(shí)間戳,將白名單標(biāo)識(shí)與新增操作符、新增的白名單鏈接和第一時(shí)間戳對(duì)應(yīng)保存。
本實(shí)施例中,可以將白名單標(biāo)識(shí)與新增操作符、新增的白名單鏈接和第一時(shí)間戳對(duì)應(yīng)保存到本地?cái)?shù)據(jù)庫(kù)中。
進(jìn)一步地,在獲取新增的白名單鏈接之后,還可以將新增操作符、白名單標(biāo)識(shí)和新增的白名單鏈接對(duì)應(yīng)保存到第一存儲(chǔ)區(qū),將白名單標(biāo)識(shí)和第一時(shí)間戳對(duì)應(yīng)保存到第二存儲(chǔ)區(qū)。其中,第一存儲(chǔ)區(qū)和第二存儲(chǔ)區(qū)可以位于內(nèi)存數(shù)據(jù)庫(kù)中。
步驟102,當(dāng)檢測(cè)到刪除操作時(shí),將與刪除操作對(duì)應(yīng)的操作符更新為刪除操作符,生成第二時(shí)間戳,將與刪除操作對(duì)應(yīng)的時(shí)間戳更新為第二時(shí)間戳。
具體地,當(dāng)檢測(cè)到刪除操作時(shí),可以獲取白名單標(biāo)識(shí),生成第二時(shí)間戳,將自身保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的操作符和時(shí)間戳分別修改為刪除操作符和第二時(shí)間戳。
進(jìn)一步地,當(dāng)檢測(cè)到刪除操作時(shí),還可以將第一存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的操作符修改為刪除操作符,將第二存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的時(shí)間戳修改為第二時(shí)間戳。
此外,當(dāng)檢測(cè)到修改操作時(shí),可以獲取白名單標(biāo)識(shí)和白名單鏈接,生成第三時(shí)間戳,將自身保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接、操作符和時(shí)間戳分別修改為獲取到的白名單鏈接、修改操作符和第三時(shí)間戳。
進(jìn)一步地,當(dāng)檢測(cè)到修改操作時(shí),還可以將第一存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接和操作符分別修改為獲取到的白名單鏈接和修改操作符,將第二存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的時(shí)間戳修改為第三時(shí)間戳。
本發(fā)明實(shí)施例一針對(duì)每條白名單鏈接設(shè)置對(duì)應(yīng)的操作符和時(shí)間戳,并在更新白名單時(shí),更新與白名單鏈接對(duì)應(yīng)的操作符和時(shí)間戳,不再新建操作日志,避免在服務(wù)端累積大量的操作日志,提高了服務(wù)端的寫(xiě)入和查詢(xún)性能。
如圖2所示,本發(fā)明第二實(shí)施例提出一種更新白名單的方法,包括:
步驟201,服務(wù)端檢測(cè)到更新操作時(shí),對(duì)操作類(lèi)型進(jìn)行判斷,如果是新增操作,則執(zhí)行步驟202;如果是修改操作,則執(zhí)行步驟208;如果是刪除操作,則執(zhí)行步驟214。
步驟202,服務(wù)端獲取白名單鏈接和站點(diǎn)名稱(chēng)。
例如,服務(wù)端獲取到的白名單鏈接和站點(diǎn)名稱(chēng)分別為“www.aaa.com”和“AAA網(wǎng)站”。
步驟203,服務(wù)端判斷數(shù)據(jù)庫(kù)中是否存在獲取到的白名單鏈接,如果是,則執(zhí)行步驟204;否則,執(zhí)行步驟205。
步驟204,服務(wù)端返回錯(cuò)誤信息,結(jié)束流程。
步驟205,服務(wù)端為白名單鏈接分配白名單標(biāo)識(shí),獲取當(dāng)前時(shí)間作為第一時(shí)間戳,將白名單標(biāo)識(shí)、站點(diǎn)名稱(chēng)、白名單鏈接、第一時(shí)間戳以及新增操作符保存到數(shù)據(jù)庫(kù)中。
其中,第一時(shí)間戳可以是13位數(shù)據(jù),數(shù)據(jù)庫(kù)可以是Mysql關(guān)系型數(shù)據(jù)庫(kù)。
例如,服務(wù)端為白名單鏈接“www.aaa.com”分配白名單標(biāo)識(shí)“10010”,獲取當(dāng)前時(shí)間“2016071809155”作為第一時(shí)間戳,將白名單標(biāo)識(shí)“10010”、站點(diǎn)名稱(chēng)“AAA網(wǎng)站”、白名單鏈接“www.aaa.com”、第一時(shí)間戳“2016071809155”以及新增操作符“A”保存到Mysql關(guān)系型數(shù)據(jù)庫(kù)中。
步驟206,服務(wù)端將白名單標(biāo)識(shí)、白名單鏈接以及新增操作符作為白名單詳情數(shù)據(jù)保存到第一存儲(chǔ)區(qū)。
其中,第一存儲(chǔ)區(qū)可以位于內(nèi)存數(shù)據(jù)庫(kù)中。
本實(shí)施例中,第一存儲(chǔ)區(qū)可以是Redis高速緩存的散列(Hash),散列包括多個(gè)域值對(duì)(field-value pair),散列的域和值都可以是文字、整數(shù)、浮點(diǎn)數(shù)或者二進(jìn)制數(shù)據(jù),同一個(gè)散列里面的每個(gè)域是獨(dú)一無(wú)二、各不相同的。
例如,白名單鏈接為“www.aaa.com”,白名單標(biāo)識(shí)為“10010”,服務(wù)端將白名單標(biāo)識(shí)“10010”、白名單鏈接“www.aaa.com”以及新增操作符“A”作為白名單詳情數(shù)據(jù)保存到Redis高速緩存的散列中。其中,散列的域分別為白名單標(biāo)識(shí)、白名單鏈接和操作符,對(duì)應(yīng)的值分別為“10010”、“www.aaa.com”和“A”。
步驟207,服務(wù)端將白名單標(biāo)識(shí)和第一時(shí)間戳作為白名單索引數(shù)據(jù)保存到第二存儲(chǔ)區(qū),結(jié)束流程。
其中,第二存儲(chǔ)區(qū)可以位于內(nèi)存數(shù)據(jù)庫(kù)中。
本實(shí)施例中,第二存儲(chǔ)區(qū)可以是Redis高速緩存的有序列表(Sorted set),有序列表包括評(píng)分字段和取值。服務(wù)端將白名單標(biāo)識(shí)和第一時(shí)間戳分別作為取值和評(píng)分字段保存到有序列表中。
例如,服務(wù)端將白名單標(biāo)識(shí)為“10010”和第一時(shí)間戳“2016071809155”作為白名單索引數(shù)據(jù)保存到Redis高速緩存的有序列表中,其中,有序列表的評(píng)分字段為第一時(shí)間戳“2016071809155”,取值為“10010”。
步驟208,服務(wù)端獲取白名單標(biāo)識(shí)、白名單鏈接和站點(diǎn)名稱(chēng)。
例如,服務(wù)端獲取到的白名單標(biāo)識(shí)、白名單鏈接和站點(diǎn)名稱(chēng)分別為“10010”、“www.aaa111.com”和“AAA111網(wǎng)站”。
步驟209,服務(wù)端判斷數(shù)據(jù)庫(kù)中是否存在獲取到的白名單標(biāo)識(shí),如果是,則執(zhí)行步驟211;否則,執(zhí)行步驟210。
步驟210,服務(wù)端返回錯(cuò)誤信息,結(jié)束流程。
步驟211,服務(wù)端獲取當(dāng)前時(shí)間作為第三時(shí)間戳,將數(shù)據(jù)庫(kù)中與獲取到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接、站點(diǎn)名稱(chēng)、操作符和時(shí)間戳,分別修改為獲取到的白名單鏈接、獲取到的站點(diǎn)名稱(chēng)、修改操作符和第三時(shí)間戳。
例如,服務(wù)端將數(shù)據(jù)庫(kù)中與白名單標(biāo)識(shí)“10010”對(duì)應(yīng)的白名單鏈接“www.aaa.com”、站點(diǎn)名稱(chēng)“AAA網(wǎng)站”、操作符“A”和時(shí)間戳“2016071809155”,分別修改為“www.aaa111.com”、“AAA111網(wǎng)站”、操作符“U”和時(shí)間戳“2016071811352”。
步驟212,服務(wù)端根據(jù)獲取到的白名單標(biāo)識(shí),在第一存儲(chǔ)區(qū)中查詢(xún)包含該白名單標(biāo)識(shí)的白名單詳情數(shù)據(jù),將查詢(xún)到的白名單詳情數(shù)據(jù)中的白名單鏈接和操作符分別更新為獲取到的白名單鏈接以及修改操作符。
例如,服務(wù)端獲取到的白名單標(biāo)識(shí)為“10010”,在第一存儲(chǔ)區(qū)中查詢(xún)到的白名單詳情數(shù)據(jù)包含白名單標(biāo)識(shí)“10010”、白名單鏈接“www.aaa.com”和操作符“A”,服務(wù)端將查詢(xún)到的白名單詳情數(shù)據(jù)中的白名單鏈接“www.aaa.com”和操作符“A”分別修改為“www.aaa111.com”、和操作符“U”。
步驟213,服務(wù)端根據(jù)獲取到的白名單標(biāo)識(shí),在第二存儲(chǔ)區(qū)中查詢(xún)包含該白名單標(biāo)識(shí)的白名單索引數(shù)據(jù),將查詢(xún)到的白名單索引數(shù)據(jù)中的時(shí)間戳更新為第三時(shí)間戳,結(jié)束流程。
例如,服務(wù)端獲取到的白名單標(biāo)識(shí)為“10010”,在第二存儲(chǔ)區(qū)中查詢(xún)到的白名單索引數(shù)據(jù)包含白名單標(biāo)識(shí)“10010”和時(shí)間戳“2016071809155”,服務(wù)端將時(shí)間戳“2016071809155”修改為時(shí)間戳“2016071811352”。
步驟214,服務(wù)端獲取白名單標(biāo)識(shí)。
例如,服務(wù)端獲取到的白名單標(biāo)識(shí)為“10010”。
步驟215,服務(wù)端判斷數(shù)據(jù)庫(kù)中是否存在獲取到的白名單標(biāo)識(shí),如果是,則執(zhí)行步驟217;否則,執(zhí)行步驟216。
步驟216,服務(wù)端返回錯(cuò)誤信息,結(jié)束流程。
步驟217,服務(wù)端獲取當(dāng)前時(shí)間作為第二時(shí)間戳,將數(shù)據(jù)庫(kù)中與獲取到的白名單標(biāo)識(shí)對(duì)應(yīng)的操作符和時(shí)間戳,分別修改為刪除操作符和第二時(shí)間戳。
例如,服務(wù)端將數(shù)據(jù)庫(kù)中與白名單標(biāo)識(shí)“10010”對(duì)應(yīng)的操作符“A”和時(shí)間戳“2016071809155”,分別修改為操作符“D”和時(shí)間戳“2016071811352”。
步驟218,服務(wù)端根據(jù)獲取到的白名單標(biāo)識(shí),在第一存儲(chǔ)區(qū)中查詢(xún)包含該白名單標(biāo)識(shí)的白名單詳情數(shù)據(jù),將查詢(xún)到的白名單詳情數(shù)據(jù)中的操作符更新為刪除操作符。
例如,服務(wù)端獲取到的白名單標(biāo)識(shí)為“10010”,在第一存儲(chǔ)區(qū)中查詢(xún)到的白名單詳情數(shù)據(jù)包含白名單標(biāo)識(shí)“10010”、白名單鏈接“www.aaa.com”和操作符“A”,服務(wù)端將查詢(xún)到的白名單詳情數(shù)據(jù)中的操作符“A”修改為操作符“D”。
步驟219,服務(wù)端根據(jù)獲取到的白名單標(biāo)識(shí),在第二存儲(chǔ)區(qū)中查詢(xún)包含該白名單標(biāo)識(shí)的白名單索引數(shù)據(jù),將查詢(xún)到的白名單索引數(shù)據(jù)中的時(shí)間戳更新為第二時(shí)間戳,結(jié)束流程。
例如,服務(wù)端獲取到的白名單標(biāo)識(shí)為“10010”,在第二存儲(chǔ)區(qū)中查詢(xún)到的白名單索引數(shù)據(jù)包含白名單標(biāo)識(shí)“10010”和時(shí)間戳“2016071809155”,服務(wù)端將時(shí)間戳“2016071809155”修改為時(shí)間戳“2016071811352”。
本發(fā)明實(shí)施例二針對(duì)每條白名單鏈接設(shè)置對(duì)應(yīng)的操作符和時(shí)間戳,并在更新白名單時(shí),更新與白名單鏈接對(duì)應(yīng)的操作符和時(shí)間戳,不再新建操作日志,避免在服務(wù)端累積大量的操作日志,提高了服務(wù)端的寫(xiě)入和查詢(xún)性能。此外,在內(nèi)存中存儲(chǔ)白名單詳情數(shù)據(jù)和白名單索引數(shù)據(jù),便于對(duì)客戶(hù)端的白名單進(jìn)行快速同步。
如圖3所示,本發(fā)明第三實(shí)施例提出一種處理白名單更新請(qǐng)求的方法,包括:
步驟301,服務(wù)端接收來(lái)自客戶(hù)端的白名單更新請(qǐng)求,向客戶(hù)端返回最大時(shí)間戳。
其中,最大時(shí)間戳為服務(wù)端當(dāng)前保存的數(shù)值最大的時(shí)間戳。
例如,服務(wù)端向客戶(hù)端返回最大時(shí)間戳“2016071809155”。
步驟302,服務(wù)端根據(jù)白名單更新請(qǐng)求中的時(shí)間戳進(jìn)度信息,從第二存儲(chǔ)區(qū)中查詢(xún)大于時(shí)間戳進(jìn)度信息的時(shí)間戳,并獲取與查詢(xún)到的時(shí)間戳對(duì)應(yīng)的白名單標(biāo)識(shí)。
其中,第二存儲(chǔ)區(qū)可以位于內(nèi)存數(shù)據(jù)庫(kù)中。
本實(shí)施例中,第二存儲(chǔ)區(qū)可以是Redis高速緩存的有序列表,有序列表包括評(píng)分字段和取值。
例如,白名單更新請(qǐng)求中的時(shí)間戳進(jìn)度信息為“2016070607349”,服務(wù)端從有序列表中查詢(xún)大于“2016070607349”的時(shí)間戳,即“2016070819343”、“2016071023190”和“2016071809155”,并獲取與查詢(xún)到的時(shí)間戳對(duì)應(yīng)的白名單標(biāo)識(shí)“10001”、“10009”和“10005”。
步驟303,服務(wù)端根據(jù)獲取到的白名單標(biāo)識(shí),從第一存儲(chǔ)區(qū)查詢(xún)與該白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接和操作符,并將查詢(xún)到的白名單鏈接和操作符,以及獲取到的白名單標(biāo)識(shí)作為白名單增量數(shù)據(jù)發(fā)送給客戶(hù)端。
其中,第一存儲(chǔ)區(qū)可以位于內(nèi)存數(shù)據(jù)庫(kù)中。
本實(shí)施例中,第一存儲(chǔ)區(qū)可以是Redis高速緩存的散列,散列包括多個(gè)域值對(duì),散列的域和值都可以是文字、整數(shù)、浮點(diǎn)數(shù)或者二進(jìn)制數(shù)據(jù),同一個(gè)散列里面的每個(gè)域是獨(dú)一無(wú)二、各不相同的。
例如,服務(wù)端根據(jù)獲取到的白名單標(biāo)識(shí)“10001”、“10009”和“10005”,從散列中查詢(xún)對(duì)應(yīng)的白名單鏈接和操作符,其中,與“10001”對(duì)應(yīng)的白名單鏈接和操作符分別為“www.bbb.com”和操作符“A”,與“10009”對(duì)應(yīng)的白名單鏈接和操作符分別為“www.ccc.com”和操作符“U”,與“10005”對(duì)應(yīng)的白名單鏈接和操作符分別為“www.aaa.com”和操作符“D”,服務(wù)端將上述白名單鏈接、操作符和白名單標(biāo)識(shí)作為白名單增量數(shù)據(jù)發(fā)送給客戶(hù)端。
本發(fā)明實(shí)施例三針對(duì)每條白名單鏈接設(shè)置對(duì)應(yīng)的操作符和時(shí)間戳,并在更新白名單時(shí),更新與白名單鏈接對(duì)應(yīng)的操作符和時(shí)間戳,不再新建操作日志,避免在服務(wù)端累積大量的操作日志,提高了服務(wù)端的寫(xiě)入和查詢(xún)性能。此外,將通過(guò)讀取內(nèi)存中存儲(chǔ)的白名單詳情數(shù)據(jù)和白名單索引數(shù)據(jù),向客戶(hù)端發(fā)送白名單增量數(shù)據(jù),能夠?qū)蛻?hù)端的白名單進(jìn)行快速同步。
如圖4所示,本發(fā)明第四實(shí)施例提出一種同步白名單的方法,包括:
步驟401,客戶(hù)端接收來(lái)自服務(wù)端的白名單標(biāo)識(shí)、白名單鏈接和操作符。
步驟402,當(dāng)操作符為新增操作符時(shí),客戶(hù)端將接收到的白名單標(biāo)識(shí)和白名單鏈接對(duì)應(yīng)保存;當(dāng)操作符為刪除操作符時(shí),客戶(hù)端將自身保存的與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接刪除。
具體地,當(dāng)操作符為新增操作符時(shí),客戶(hù)端可以將對(duì)應(yīng)的白名單標(biāo)識(shí)和白名單鏈接保存到本地?cái)?shù)據(jù)庫(kù)。當(dāng)操作符為刪除操作符時(shí),客戶(hù)端可以判斷本地?cái)?shù)據(jù)庫(kù)中是否保存有接收到的白名單標(biāo)識(shí),如果是,則將本地?cái)?shù)據(jù)庫(kù)中保存的該白名單標(biāo)識(shí)以及與該白名單標(biāo)識(shí)對(duì)應(yīng)的鏈接刪除;否則,結(jié)束流程。
此外,當(dāng)操作符為修改操作符時(shí),客戶(hù)端將自身保存的與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接修改為接收到的白名單鏈接。
本實(shí)施例中,當(dāng)操作符為修改操作符時(shí),客戶(hù)端可以判斷本地?cái)?shù)據(jù)庫(kù)中是否保存有接收到的白名單標(biāo)識(shí),如果是,則將本地?cái)?shù)據(jù)庫(kù)中與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的鏈接修改為接收到的白名單鏈接;否則,將接收到的白名單鏈接和白名單標(biāo)識(shí)添加到本地?cái)?shù)據(jù)庫(kù)。
本發(fā)明實(shí)施例四中的客戶(hù)端根據(jù)接收到的操作符更新白名單,不再拉取中間數(shù)據(jù)同步客戶(hù)端,從而去除了大量冗余數(shù)據(jù),提高了客戶(hù)端的運(yùn)行效率。
如圖5所示,本發(fā)明第五實(shí)施例提出一種同步白名單的方法,包括:
步驟501,客戶(hù)端向服務(wù)端發(fā)送白名單更新請(qǐng)求。
其中,白名單更新請(qǐng)求中包含時(shí)間戳進(jìn)度信息。
例如,白名單更新請(qǐng)求中包含時(shí)間戳進(jìn)度信息為“2016070607349”。
步驟502,客戶(hù)端接收服務(wù)端返回的白名單增量數(shù)據(jù)和最大時(shí)間戳。
其中,白名單增量數(shù)據(jù)包括一個(gè)或多個(gè)白名單鏈接以及與白名單鏈接對(duì)應(yīng)的白名單標(biāo)識(shí)和操作符。
步驟503,客戶(hù)端將自身保存的時(shí)間戳進(jìn)度信息更新為接收到的最大時(shí)間戳。
例如,接收到的最大時(shí)間戳為“2016071809155”時(shí),客戶(hù)端將自身保存的時(shí)間戳進(jìn)度信息“2016070607349”更新為“2016071809155”。
步驟504,客戶(hù)端從接收到的白名單增量數(shù)據(jù)中獲取一條未被處理過(guò)的白名單鏈接作為當(dāng)前鏈接,對(duì)當(dāng)前鏈接對(duì)應(yīng)的操作符進(jìn)行判斷,如果是新增操作符,則執(zhí)行步驟505;如果是修改操作符,則執(zhí)行步驟506;如果是刪除操作符,則執(zhí)行步驟509。
步驟505,客戶(hù)端將當(dāng)前鏈接以及與當(dāng)前鏈接對(duì)應(yīng)的白名單標(biāo)識(shí)添加到本地?cái)?shù)據(jù)庫(kù),并執(zhí)行步驟511。
步驟506,客戶(hù)端判斷本地?cái)?shù)據(jù)庫(kù)中是否保存有當(dāng)前鏈接對(duì)應(yīng)的白名單標(biāo)識(shí),如果是,則執(zhí)行步驟507;否則,執(zhí)行步驟508。
步驟507,客戶(hù)端根據(jù)與當(dāng)前鏈接對(duì)應(yīng)的白名單標(biāo)識(shí),將本地?cái)?shù)據(jù)庫(kù)中與該白名單標(biāo)識(shí)對(duì)應(yīng)的鏈接修改為當(dāng)前鏈接,并執(zhí)行步驟511。
步驟508,客戶(hù)端將當(dāng)前鏈接以及與當(dāng)前鏈接對(duì)應(yīng)的白名單標(biāo)識(shí)添加到本地?cái)?shù)據(jù)庫(kù),并執(zhí)行步驟511。
步驟509,客戶(hù)端判斷本地?cái)?shù)據(jù)庫(kù)中是否保存有當(dāng)前鏈接對(duì)應(yīng)的白名單標(biāo)識(shí),如果是,則執(zhí)行步驟510;否則,執(zhí)行步驟511。
步驟510,客戶(hù)端根據(jù)與當(dāng)前鏈接對(duì)應(yīng)的白名單標(biāo)識(shí),將本地?cái)?shù)據(jù)庫(kù)中保存的該白名單標(biāo)識(shí)以及與該白名單標(biāo)識(shí)對(duì)應(yīng)的鏈接刪除,并執(zhí)行步驟511。
步驟511,客戶(hù)端判斷白名單增量數(shù)據(jù)中是否還有未被處理過(guò)的白名單鏈接,如果有,則執(zhí)行步驟504;否則,結(jié)束流程。
本發(fā)明實(shí)施例五中的客戶(hù)端根據(jù)接收到的操作符更新白名單,不再拉取中間數(shù)據(jù)同步客戶(hù)端,從而去除了大量冗余數(shù)據(jù),減少了操作本地?cái)?shù)據(jù)庫(kù)的次數(shù),提高了客戶(hù)端的運(yùn)行效率。
如圖6所示,本發(fā)明第六實(shí)施例提出一種更新白名單的裝置,應(yīng)用于服務(wù)端,包括:
檢測(cè)模塊610,用于檢測(cè)是否發(fā)生更新操作。
新增模塊620,用于在檢測(cè)模塊610檢測(cè)到新增操作時(shí),獲取新增的白名單鏈接,生成時(shí)間戳,將新增的白名單鏈接、生成的時(shí)間戳與新增操作符對(duì)應(yīng)保存。
刪除模塊630,用于在檢測(cè)模塊610檢測(cè)到刪除操作時(shí),將與刪除操作對(duì)應(yīng)的操作符更新為刪除操作符,生成時(shí)間戳,將與刪除操作對(duì)應(yīng)的時(shí)間戳更新為生成的時(shí)間戳。
進(jìn)一步地,上述新增模塊620,還用于為新增的白名單鏈接分配白名單標(biāo)識(shí),將白名單標(biāo)識(shí)與新增操作符、新增的白名單鏈接和時(shí)間戳對(duì)應(yīng)保存。
進(jìn)一步地,上述裝置,還包括:
修改模塊640,用于在檢測(cè)模塊610檢測(cè)到修改操作時(shí),獲取白名單標(biāo)識(shí)和白名單鏈接,生成時(shí)間戳,將自身保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接、操作符和時(shí)間戳分別修改為獲取到的白名單鏈接、修改操作符和生成的時(shí)間戳。
上述刪除模塊630,具體用于在檢測(cè)模塊610檢測(cè)到刪除操作時(shí),獲取白名單標(biāo)識(shí),生成時(shí)間戳,將自身保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的操作符和時(shí)間戳分別修改為刪除操作符和生成的時(shí)間戳。
進(jìn)一步地,上述新增模塊620,還用于將新增操作符、白名單標(biāo)識(shí)和新增的白名單鏈接對(duì)應(yīng)保存到第一存儲(chǔ)區(qū),將白名單標(biāo)識(shí)和時(shí)間戳對(duì)應(yīng)保存到第二存儲(chǔ)區(qū)。
相應(yīng)地,上述修改模塊640,還用于將第一存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接和操作符分別修改為獲取到的白名單鏈接和修改操作符,將第二存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的時(shí)間戳修改為生成的時(shí)間戳。
上述刪除模塊630,還用于將第一存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的操作符修改為刪除操作符,將第二存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的時(shí)間戳修改為生成的時(shí)間戳。
進(jìn)一步地,上述裝置,還包括:
接收模塊,用于接收來(lái)自客戶(hù)端的白名單更新請(qǐng)求;
獲取模塊,用于根據(jù)白名單更新請(qǐng)求中的時(shí)間戳進(jìn)度信息,從第二存儲(chǔ)區(qū)中查詢(xún)大于時(shí)間戳進(jìn)度信息的時(shí)間戳,并獲取與查詢(xún)到的時(shí)間戳對(duì)應(yīng)的白名單標(biāo)識(shí);
查詢(xún)模塊,用于根據(jù)獲取模塊獲取到的白名單標(biāo)識(shí),從第一存儲(chǔ)區(qū)查詢(xún)與該白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接和操作符;
發(fā)送模塊,用于將查詢(xún)模塊查詢(xún)到的白名單鏈接和操作符,以及獲取到的白名單標(biāo)識(shí)發(fā)送給客戶(hù)端。
本發(fā)明實(shí)施例六針對(duì)每條白名單鏈接設(shè)置對(duì)應(yīng)的操作符和時(shí)間戳,并在更新白名單時(shí),更新與白名單鏈接對(duì)應(yīng)的操作符和時(shí)間戳,不再新建操作日志,避免在服務(wù)端累積大量的操作日志,提高了服務(wù)端的寫(xiě)入和查詢(xún)性能。此外,在內(nèi)存中存儲(chǔ)白名單詳情數(shù)據(jù)和白名單索引數(shù)據(jù),便于對(duì)客戶(hù)端的白名單進(jìn)行快速同步。
如圖7所示,本發(fā)明第七實(shí)施例提出一種同步白名單的裝置,應(yīng)用于客戶(hù)端,包括:
第一接收模塊710,用于接收來(lái)自服務(wù)端的白名單標(biāo)識(shí)、白名單鏈接和操作符。
第一更新模塊720,用于在操作符為新增操作符時(shí),將第一接收模塊710接收到的白名單標(biāo)識(shí)和白名單鏈接對(duì)應(yīng)保存;在操作符為刪除操作符時(shí),將自身保存的與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接刪除。
進(jìn)一步地,上述第一更新模塊720,還用于在操作符為修改操作符時(shí),將自身保存的與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接修改為接收到的白名單鏈接。
具體地,上述第一更新模塊720,具體用于在操作符為新增操作符時(shí),將對(duì)應(yīng)的白名單標(biāo)識(shí)和白名單鏈接保存到本地?cái)?shù)據(jù)庫(kù);
在操作符為修改操作符時(shí),判斷本地?cái)?shù)據(jù)庫(kù)中是否保存有接收到的白名單標(biāo)識(shí),如果是,則將本地?cái)?shù)據(jù)庫(kù)中與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的鏈接修改為接收到的白名單鏈接;否則,將接收到的白名單鏈接和白名單標(biāo)識(shí)添加到本地?cái)?shù)據(jù)庫(kù);
在操作符為刪除操作符時(shí),判斷本地?cái)?shù)據(jù)庫(kù)中是否保存有接收到的白名單標(biāo)識(shí),并在判斷出本地?cái)?shù)據(jù)庫(kù)中保存有接收到的白名單標(biāo)識(shí)時(shí),將本地?cái)?shù)據(jù)庫(kù)中保存的該白名單標(biāo)識(shí)以及與該白名單標(biāo)識(shí)對(duì)應(yīng)的鏈接刪除。
進(jìn)一步地,上述裝置,還包括:
發(fā)送模塊,用于向服務(wù)端發(fā)送白名單更新請(qǐng)求,白名單更新請(qǐng)求中包含時(shí)間戳進(jìn)度信息;
第二接收模塊,用于接收服務(wù)端返回的最大時(shí)間戳;
第二更新模塊,用于將自身保存的時(shí)間戳進(jìn)度信息更新為最大時(shí)間戳。
本發(fā)明實(shí)施例七中的第一更新模塊720根據(jù)接收到的操作符更新白名單,不再拉取中間數(shù)據(jù)同步客戶(hù)端,從而去除了大量冗余數(shù)據(jù),減少了操作本地?cái)?shù)據(jù)庫(kù)的次數(shù),提高了客戶(hù)端的運(yùn)行效率。
如圖8所示,為本發(fā)明第八實(shí)施例中的一種更新和同步白名單的系統(tǒng)結(jié)構(gòu)圖,包括服務(wù)端810和客戶(hù)端820。
其中,服務(wù)端810,用于在檢測(cè)到新增操作時(shí),獲取新增的白名單鏈接,生成第一時(shí)間戳,將新增的白名單鏈接、第一時(shí)間戳與新增操作符對(duì)應(yīng)保存;在檢測(cè)到刪除操作時(shí),將與刪除操作對(duì)應(yīng)的操作符更新為刪除操作符,生成第二時(shí)間戳,將與刪除操作對(duì)應(yīng)的時(shí)間戳更新為第二時(shí)間戳。
進(jìn)一步地,上述服務(wù)端810,還用于在獲取新增的白名單鏈接之后,為新增的白名單鏈接分配白名單標(biāo)識(shí),將白名單標(biāo)識(shí)與新增操作符、新增的白名單鏈接和第一時(shí)間戳對(duì)應(yīng)保存。
進(jìn)一步地,上述服務(wù)端810,具體用于在檢測(cè)到修改操作時(shí),獲取白名單標(biāo)識(shí)和白名單鏈接,生成第三時(shí)間戳,將自身保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接、操作符和時(shí)間戳分別修改為獲取到的白名單鏈接、修改操作符和第三時(shí)間戳;在檢測(cè)到刪除操作時(shí),獲取白名單標(biāo)識(shí),生成第二時(shí)間戳,將自身保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的操作符和時(shí)間戳分別修改為刪除操作符和第二時(shí)間戳。
進(jìn)一步地,上述服務(wù)端810,還用于在獲取新增的白名單鏈接之后,將新增操作符、白名單標(biāo)識(shí)和新增的白名單鏈接對(duì)應(yīng)保存到第一存儲(chǔ)區(qū),將白名單標(biāo)識(shí)和第一時(shí)間戳對(duì)應(yīng)保存到第二存儲(chǔ)區(qū);在檢測(cè)到刪除操作時(shí),將第一存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的操作符修改為刪除操作符,將第二存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的時(shí)間戳修改為第二時(shí)間戳;在檢測(cè)到修改操作時(shí),將第一存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接和操作符分別修改為獲取到的白名單鏈接和修改操作符,將第二存儲(chǔ)區(qū)中保存的與白名單標(biāo)識(shí)對(duì)應(yīng)的時(shí)間戳修改為第三時(shí)間戳。
進(jìn)一步地,上述服務(wù)端810,還用于接收來(lái)自客戶(hù)端820的白名單更新請(qǐng)求,根據(jù)白名單更新請(qǐng)求中的時(shí)間戳進(jìn)度信息,從第二存儲(chǔ)區(qū)中查詢(xún)大于時(shí)間戳進(jìn)度信息的時(shí)間戳,并獲取與查詢(xún)到的時(shí)間戳對(duì)應(yīng)的白名單標(biāo)識(shí);根據(jù)獲取到的白名單標(biāo)識(shí),從第一存儲(chǔ)區(qū)查詢(xún)與該白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接和操作符,并將查詢(xún)到的白名單鏈接和操作符,以及獲取到的白名單標(biāo)識(shí)發(fā)送給客戶(hù)端820。
客戶(hù)端820,用于接收來(lái)自服務(wù)端810的白名單標(biāo)識(shí)、白名單鏈接和操作符,當(dāng)操作符為新增操作符時(shí),將接收到的白名單標(biāo)識(shí)和白名單鏈接對(duì)應(yīng)保存;當(dāng)操作符為刪除操作符時(shí),將自身保存的與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接刪除。
進(jìn)一步地,上述客戶(hù)端820,還用于在操作符為修改操作符時(shí),將自身保存的與接收到的白名單標(biāo)識(shí)對(duì)應(yīng)的白名單鏈接修改為接收到的白名單鏈接。
進(jìn)一步地,上述客戶(hù)端820,還用于在接收來(lái)自服務(wù)端810的白名單標(biāo)識(shí)、白名單鏈接和操作符之前,向服務(wù)端810發(fā)送白名單更新請(qǐng)求,白名單更新請(qǐng)求中包含時(shí)間戳進(jìn)度信息;在向服務(wù)端810發(fā)送白名單更新請(qǐng)求之后,接收服務(wù)端810返回的最大時(shí)間戳,將自身保存的時(shí)間戳進(jìn)度信息更新為最大時(shí)間戳。
本發(fā)明實(shí)施例八針對(duì)每條白名單鏈接設(shè)置對(duì)應(yīng)的操作符和時(shí)間戳,并在服務(wù)端810更新白名單時(shí),更新與白名單鏈接對(duì)應(yīng)的操作符和時(shí)間戳,不再新建操作日志,避免在服務(wù)端810累積大量的操作日志,提高了服務(wù)端810的寫(xiě)入和查詢(xún)性能;相應(yīng)地,客戶(hù)端820根據(jù)接收到的操作符更新白名單,不再拉取中間數(shù)據(jù)同步客戶(hù)端820,從而去除了大量冗余數(shù)據(jù),提高了客戶(hù)端820的運(yùn)行效率。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者裝置不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者裝置所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者裝置中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。