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