即時通訊鍵-值數據下發方法、服務器、客戶端及系統的制作方法

            文檔序號:8002840閱讀:241來源:國知局
            即時通訊鍵-值數據下發方法、服務器、客戶端及系統的制作方法
            【專利摘要】本發明涉及一種即時通訊鍵-值數據下發方法、服務器、客戶端及系統,其方法包括:服務器接收客戶端在登錄時發送的拉取鍵-值數據的請求包;請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;根據請求包所攜帶的參數,選用預設的數據下發機制,向客戶端下發全量鍵-值數據或向客戶端下發增量鍵-值數據或不下發鍵-值數據,由客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。本發明實現了鍵-值數據的增量下發,減少網絡帶寬浪費,解決了鍵-值數據下發過程中網絡帶寬占用的問題,并保證即時通信客戶端和服務器的數據一致性。
            【專利說明】即時通訊鍵-值數據下發方法、服務器、客戶端及系統

            【技術領域】
            [0001]本發明涉及即時通訊【技術領域】,尤其涉及一種即時通訊鍵-值數據下發方法、月艮務器、客戶端及系統。

            【背景技術】
            [0002]在即時通信領域,許多業務場景需要使用到key-value (鍵-值)數據下發技術,例如某個用戶登錄即時通訊客戶端,需要從服務器拉取好友列表,好友列表包括好友的賬號和描述賬號屬性的數據(例如成為好友的時間),該賬號作為唯一標識可以抽象為key,與賬號相關聯的數據抽象為value,好友列表中的每個好友對應一條鍵-值數據記錄,這些鍵-值數據記錄則構成該用戶的鍵-值數據。
            [0003]目前,在即時通信領域,通常采用以下兩種方式實現鍵-值數據下發:
            [0004]1、用戶每次登錄即時通信客戶端時,從服務器拉取全量的鍵-值數據。
            [0005]2、為鍵-值數據附加一個序列號,服務器的鍵-值數據每變化一次,序列號加I。在客戶端首次登錄時,將鍵-值數據和序列號從服務器拉取下來并緩存在客戶端,客戶端下次登錄時,將緩存的序列號提交給服務器,服務器判斷客戶端提交的序列號和本地的序列號是否一致,如果一致,服務器則不下發鍵-值數據,如果不一致,服務器下發全量的鍵-值數據和最新的序列號,客戶端接收到后緩存在本地。
            [0006]上述兩種鍵-值數據下發方式中,對于即時通信客戶端每次登錄就從服務器拉取全量鍵-值數據的方案,其實現簡單,客戶端不需要緩存服務器的數據,但是大多數時候用戶的鍵-值數據都沒有變化,若每次登錄都拉取全量的鍵-值數據,則對于具有海量用戶的即時通信服務,會導致極大的網絡帶寬浪費。
            [0007]對于為鍵-值數據附加一個序列號的方法,雖然能避免每次客戶端登錄都全量拉取鍵-值數據的網絡帶寬浪費,但是,隨著即時通信服務的發展,用戶的鍵-值數據越來越豐富,假定某個用戶有5000條鍵-值數據記錄,每條鍵-值數據記錄平均長度為20字節,則鍵-值數據的總長度約為100KB,只要其中一條20字節長的鍵-值數據變化,序列號加1,則下次客戶端登錄時要拉取100KB的全量數據,而其中只有20個字節的數據真正需要下發,由此造成網絡帶寬利用率很低。


            【發明內容】

            [0008]本發明實施例提供一種即時通訊鍵-值數據下發方法、服務器、客戶端及系統,旨在實現鍵-值數據的增量下發,提高網絡帶寬利用率。
            [0009]本發明實施例提出一種即時通訊鍵-值數據下發方法,包括:
            [0010]服務器接收客戶端在登錄時發送的拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;
            [0011]根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由所述客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。
            [0012]本發明實施例還提出一種下發即時通訊鍵-值數據的服務器,包括:
            [0013]請求接收模塊,用于接收客戶端在登錄時發送的拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;
            [0014]下發處理模塊,用于根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由所述客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。
            [0015]本發明實施例還提出一種即時通訊鍵-值數據下發方法,包括:
            [0016]發送拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;
            [0017]接收服務器根據所述請求包所攜帶的參數下發的全量鍵-值數據或增量鍵-值數據;
            [0018]根據所述服務器的返回結果更新本地緩存數據。
            [0019]本發明實施例還提出一種下發即時通訊鍵-值數據的系統,包括客戶端和如上所述的服務器,其中:
            [0020]所述客戶端,用于在登錄時向所述服務器發送拉取鍵-值數據的請求包;以及根據所述服務器的返回結果,更新本地緩存數據并展現給用戶。
            [0021]本發明實施例提出的一種即時通訊鍵-值數據下發方法、服務器、客戶端及系統,服務器在接收客戶端在登錄時發送的拉取鍵-值數據的請求包時;根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由客戶端根據服務器的返回結果更新本地緩存數據并展現給用戶,其中,客戶端發送的請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號,從而實現了鍵-值數據的增量下發,減少網絡帶寬浪費,解決了鍵-值數據下發過程中網絡帶寬占用的問題,并保證即時通信客戶端和服務器的數據一致性。

            【專利附圖】

            【附圖說明】
            [0022]圖1是本發明即時通訊鍵-值數據下發方法第一實施例的流程示意圖;
            [0023]圖2是本發明實施例中根據請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據的流程示意圖;
            [0024]圖3a是本發明實施例中服務器確定上次拉取以來修改或新增的鍵-值數據的一種流程示意圖;
            [0025]圖3b是本發明實施例中服務器確定上次拉取以來修改或新增的鍵-值數據的另一種流程示意圖;
            [0026]圖3c是本發明實施例中服務器確定并發送上次拉取以來刪除過的鍵-值數據的key的一種流程示意圖;
            [0027]圖4是本發明即時通訊鍵-值數據下發方法第二實施例的流程示意圖;
            [0028]圖5是本發明下發即時通訊鍵-值數據的服務器較佳實施例的功能模塊示意圖;
            [0029]圖6是本發明下發即時通訊鍵-值數據的服務器較佳實施例中下發處理模塊的功能豐旲塊不意圖;
            [0030]圖7是本發明下發即時通訊鍵-值數據的系統較佳實施例的功能模塊示意圖。
            [0031]為了使本發明的技術方案更加清楚、明了,下面將結合附圖作進一步詳述。

            【具體實施方式】
            [0032]本發明實施例解決方案主要是:服務器在接收客戶端在登錄時發送的拉取鍵-值數據的請求包時;根據請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由客戶端根據服務器的返回結果更新本地緩存數據并展現給用戶,其中,客戶端發送的請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號,由此可以實現鍵-值數據的增量下發,減少網絡帶寬浪費,并保證即時通信客戶端和服務器的數據一致性。
            [0033]本發明實施例中所涉及的技術術語包括:
            [0034]全量下發:服務器向客戶端下發用戶的鍵-值數據時,將所有的鍵-值數據記錄都下發。
            [0035]增量下發:服務器向客戶端下發用戶的鍵-值數據時,只下發新增、修改和刪除的鍵-值數據記錄。
            [0036]如圖1所示,本發明第一實施例從服務器側提出一種即時通訊鍵-值數據下發方法,包括:
            [0037]步驟S101,服務器接收客戶端在登錄時發送的拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;
            [0038]本實施例方法運行環境涉及即時通訊客戶端以及服務器,可以實現服務器鍵-值數據的增量下發,以解決鍵-值數據下發過程中網絡帶寬占用的問題。
            [0039]首先,客戶端在登錄時,向服務器發送拉取鍵-值數據的請求包,該請求包至少需要攜帶全量拉取時間戳、增量拉取時間戳和數據變更序列號,同時還可以攜帶二維校驗和參數,以便服務器根據請求包所攜帶的參數,選用相應的數據下發機制向客戶端下發鍵-值數據。
            [0040]步驟S102,根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由所述客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。
            [0041]本實施例中服務器設定的數據下發機制包括使用時間戳的全量數據下發機制、使用時間戳和序列號的增量數據下發機制,以及二維校驗和計算機制、將刪除的key在服務器進行緩存的機制等。
            [0042]其中,對于使用時間戳的全量數據下發機制,在客戶端首次登錄時,從服務器拉取全量鍵-值數據,并記錄全量拉取的時間戳,以后以首次全量拉取的時間戳為基準,每隔全量拉取時間間隔tl,重新完成一次全量拉取。上述全量拉取時間間隔tl可以根據實際情況來設定。
            [0043]對于使用時間戳和序列號的增量數據下發機制,在設定的兩次全量拉取之間的增量時間間隔t2中,根據條件判斷是否使用增量拉取。若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號不一致,則直接發起本次增量數據拉取;若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號一致,且上次增量拉取的時間距離當前時間的間隔大于或等于t2時,直接發起本次增量數據拉取;若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號一致,且上次增量拉取距離當前時間的間隔小于t2時,不發起本次增量拉取數據。本發明實施例中增量數據的含義解釋為新增、修改或刪除的鍵-值數據。
            [0044]上述二維校驗和計算機制是指服務器在增量數據下發過程中,盡力將有變化的鍵-值數據下發給客戶端,對于不修改的鍵-值數據則不下發給客戶端。
            [0045]上述將刪除的key在服務器進行緩存的機制是指,每次增量拉取的時候,將上次增量拉取和本次增量拉取時間間隔內被刪除的key返回給客戶端,由客戶端將對應的鍵-值數據刪除。
            [0046]需要說明的是,全量數據下發機制除了在首次登錄過程中獲取全量鍵-值數據夕卜,還作為增量數據下發機制的保護邏輯,在實際實現中,增量數據下發機制如果出錯,會導致客戶端獲取到的鍵-值數據錯亂,若定期進行全量數據下發,則可以修復錯亂的數據。
            [0047]客戶端在接收到服務器返回的結果后,更新本地緩存數據并展現給用戶。
            [0048]具體地,上述步驟S102:根據請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據可以包括:
            [0049]步驟S1021,判斷所述請求包所攜帶的全量拉取時間戳、增量拉取時間戳和數據變更序列號設置是否為空;若是,則進入步驟S1022 ;否則,進入步驟S1023 ;
            [0050]若客戶端是首次發送請求,則本地未緩存任何數據,請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置為空。
            [0051]步驟S1022,服務器向所述客戶端下發全量鍵-值數據、最新的全量拉取時間戳;
            [0052]步驟S1023,將所述請求包中的全量拉取時間戳與當前時間進行對比,獲取請求包中的全量拉取時間戳與當前時間之間的時間間隔;進入步驟S1024 ;
            [0053]步驟S1024,判斷所述全量拉取時間戳與當前時間之間的時間間隔是否大于或等于預設的全量拉取時間間隔tl,若是,則進入步驟S1022 ;否則,進入步驟S1025 ;
            [0054]步驟S1025,判斷所述請求包中的數據變更序列號與所述服務器本地保存的數據變更序列號是否一致;若不一致,則進入步驟S1026 ;否則,進入步驟S1027 ;
            [0055]步驟S1026,所述服務器向所述客戶端下發增量鍵-值數據和最新的增量拉取時間戳;
            [0056]步驟S1027,將所述請求包中的增量拉取時間戳與當前時間進行對比,獲取請求包中的增量拉取時間戳與當前時間之間的時間間隔;進入步驟S1028 ;
            [0057]步驟S1028,判斷所述增量拉取時間戳與當前時間之間的時間間隔是否大于或等于預設的兩次全量拉取之間的增量時間間隔t2,若是,則進入步驟S1026 ;否則,進入步驟S1029 ;
            [0058]步驟S1029,所述服務器不向所述客戶端下發鍵-值數據。
            [0059]進一步地,如前所述,客戶端發送的請求包中還可以攜帶有二維校驗和參數;在此種情形下,在所述服務器向所述客戶端下發全量鍵-值數據時,還同時下發根據所述全量鍵-值數據計算出的二維校驗和參數;
            [0060]在所述服務器向所述客戶端下發增量鍵-值數據時,還同時下發根據全量鍵-值數據計算出的二維校驗和參數。
            [0061]以下詳細闡述本實施例即時通訊鍵-值數據的下發過程:
            [0062]在滿足如下條件需要向客戶端下發全量鍵-值數據:客戶端請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置為空;或者,客戶端請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置不為空時,客戶端請求包中的全量拉取時間戳與當前時間相比,時間間隔大于或等于全量拉取的時間間隔tl。在此種條件下,服務器會下發全量鍵-值數據、最新的全量拉取時間戳和根據全量的鍵-值數據計算出的二維校驗和參數。
            [0063]在滿足如下條件需要向客戶端下發增量鍵-值數據、最新的增量拉取時間戳和根據全量的鍵-值數據計算出的二維校驗和:
            [0064]客戶端請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置不為空,且客戶端請求包中的全量拉取時間戳與當前時間相比,時間間隔小于全量拉取的時間間隔tl時,客戶端請求包中的數據變更序列號和服務器存儲的數據變更序列號不一致;或者,客戶端請求包中的數據變更序列號和服務器存儲的數據變更序列號一致時,客戶端請求包中的增量拉取時間戳與當前時間相比,時間間隔大于等于增量拉取的時間間隔t2,即每隔時間間隔t2,服務器一定會返回增量數據,作為數據變更序列號出錯(例如鍵-值數據變化了,數據變更序列號卻未改變)的一個容錯機制。
            [0065]其中,增量鍵-值數據包括兩個部分:上次拉取以來修改或新增的鍵-值數據,以及上次拉取以來刪除過的鍵-值數據的key。
            [0066]如圖3a所示,作為一種實施方式,所述服務器確定上次拉取以來修改或新增的鍵-值數據的步驟可以包括:
            [0067]步驟SI I,按照hash (key)%M將所述服務器的全量鍵-值數據劃分成M個集合,每個集合計算一個校驗和,得到M個校驗和;按照hash (key) %N將服務器的全量鍵-值數據劃分成N個集合,每個集合計算一個校驗和,得到N個校驗和,所述M個校驗和與N個校驗和組成所述服務器的二維校驗和參數。
            [0068]其中,二維校驗和的意思即為%M和%N兩個維度,M和N不相等。
            [0069]校驗和參數的計算算法可以采用CRC、md5等校驗算法。上述hash (key)是按照hash算法將key映射為一個整型數。
            [0070]步驟S12,將所述客戶端發送的請求包中的二維校驗和參數與所述服務器計算出的二維校驗和參數進行比較,確定修改或新增的鍵-值數據。
            [0071]具體地,以下采用一個實例說明如何根據二維校驗和確定新增和修改的鍵-值數據。
            [0072]設定客戶端請求包中的二維校驗和為{client_checksum_x_0, client_checksum_
            x_l,......, client_checksum_x_M-l}、{client_checksum_y_l, client_checksum_
            y_0,......,client_checksum_y_N-l},設定服務器計算出的二維校驗和為{server_
            checksum_x_0, server_checksum_x_l,......, server_checksum_x_M-l}、{server_
            checksum_y_0, server_checksum_y_l,......, server_checksum_y_N-l}。
            [0073]如果client_checksum_x_0 不等于 server_checksum_x_0,表明 hash (key) %M等于O的鍵-值集合中有鍵-值數據可能被修改或添加,導致服務器和客戶端的校驗和不一致。為了對返回的增量鍵-值數據進行進一步篩選,對hash (key) %M等于O的鍵-值集合中的每一個 key,設定 key 的具體取值為 key_k 且 hash (key_k) %N 等于 K,如果 client_checksum_y_K等于server_checksum_y_K,表明key_k對應的鍵-值數據沒有修改或增加,key_k不需要加入到可能增加或修改的鍵-值數據中,如果client_checksum_y_K不等于server_checksum_y_K,表明key_k對應的鍵-值數據可能修改或增加,key_k要加入到可能增加或修改的鍵-值數據中。
            [0074]在計算時,首先通過key%M計算出的校驗和得出可能增加或修改的鍵-值數據,再通過key%N計算出的校驗和排除一部分實際上沒有增加或修改的鍵-值數據,然后返回給客戶端。
            [0075]實際上,采用上述方法計算出來的增加或修改的鍵-值數據,其中有部分kye-value數據不變,但是增加或修改的鍵-值數據一定包含在里面。在實際工程實現中,可以采用一維或多維(即大于二維)校驗和的計算方法。
            [0076]如圖3b所示,作為另一種實施方式,所述服務器確定上次拉取以來修改或新增的鍵-值數據的步驟可以包括:
            [0077]步驟S21,所述服務器為每條鍵-值數據記錄附加一時間戳;
            [0078]步驟S22,當新增或修改一條鍵-值數據記錄時,將該時間戳更新為當前時間;
            [0079]步驟S23,在所述客戶端拉取數據時,確定所述客戶端的請求包所攜帶的上次拉取數據的時間戳之后的所有鍵-值數據記錄為修改或新增的鍵-值數據。
            [0080]此種實施方式作為上述圖3a所示實施方式的替代實施方式。在此種實施方式中,可以考慮服務器在進行鍵-值數據的增量下發時,不使用上述圖3a所示的二維校驗和計算機制確定新增或修改的鍵-值數據記錄,而是為每條鍵-值數據記錄附加一個時間戳。當新增或修改一條鍵-值數據記錄時,將時間戳更新為當前時間,每次客戶端拉取數據時,帶上上次拉取數據的時間戳,在該時間戳之后的所有鍵-值數據記錄均為新增或修改的鍵-值數據,下發給客戶端。該替代方案的優點是可精確確定新增或修改的鍵-值數據記錄,缺點是對于海量的鍵-值數據,為每個鍵-值數據記錄附加一個時間戳,會占用服務器大量的存儲空間。
            [0081]如圖3a所示,作為一種實施方式,所述服務器確定并發送上次拉取以來刪除過的鍵-值數據的key的步驟可以包括:
            [0082]步驟S31,當一鍵-值數據被刪除時,將對應的key和刪除時間戳進行緩存;
            [0083]步驟S32,當所述刪除時間戳與當前時間之間的時間間隔大于所述預設的全量拉取時間間隔tl時,刪除所述對應的key ;
            [0084]步驟S33,當需要返回上次拉取以來刪除過的鍵-值數據的key時,將所有在上次拉取時間戳之后緩存的key返回給所述客戶端;所述上次拉取時間戳為所述請求包攜帶的全量拉取時間戳和增量拉取時間戳中最新的一個。
            [0085]本實施方式通過將刪除的key在服務器進行緩存的方式來確定并發送上次拉取以來刪除過的鍵-值數據的key。
            [0086]具體地,當某個鍵-值數據被刪除時,服務器會將對應的key和刪除時間戳緩存起來。因此,被緩存的刪除key會越來越多,需要有一個定期清理機制,將不再用到的刪除key從緩存中清除掉。
            [0087]當某個key的刪除時間戳距離當前時間的間隔大于全量拉取時間間隔tl時,該key即可被刪除掉,因為每隔全量拉取時間間隔tl,客戶端一定會發起一次全量拉取請求,覆蓋本地數據,在全量拉取時間間隔tl之前存儲的刪除key已經沒有意義了。
            [0088]當需要返回上次拉取以來刪除過的鍵-值數據的key時,服務器將所有在上次拉取時間戳之后緩存起來的key全部返回給客戶端。客戶端每次拉取都會帶上全量拉取時間戳和增量拉取時間戳,上次拉取時間戳即為全量拉取時間戳和增量拉取時間戳中最新的那一個。
            [0089]后續處理過程中,客戶端在接收服務器的返回的結果,更新本地緩存數據并展現給用戶。
            [0090]具體地,若服務器返回全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和,客戶端直接覆蓋本地緩存中的全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和。
            [0091]若服務器返回增量鍵-值數據、數據變更序列號、增量拉取時間戳和二維校驗和,客戶端直接覆蓋本地緩存中的數據變更序列號、增量拉取時間戳和二維校驗和,按照增量鍵-值數據的key更新本地緩存的數據,例如客戶端本地緩存中的全量數據有keyl-valuel、key2-value2, key3-value3,服務器下發的增量數據中包含 key2_value2’、key4-value4和刪除key列表key3,則更新后的全量數據為keyl-valuel、key2_value2’、key4_value4,注意為 keyl-valuel 不變,key2_value2’ 的 value 修改為最新,key3_value3被刪除,key4-value4為新加;
            [0092]若服務器返回客戶端數據為最新數據,則不需要修改數據,客戶端也不需要任何操作。
            [0093]本實施例通過上述方案,服務器在接收客戶端在登錄時發送的拉取鍵-值數據的請求包時;根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由客戶端根據服務器的返回結果更新本地緩存數據并展現給用戶,其中,客戶端發送的請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號,從而實現了鍵-值數據的增量下發,減少網絡帶寬浪費,解決了鍵-值數據下發過程中網絡帶寬占用的問題,并保證即時通信客戶端和服務器的數據一致性。
            [0094]如圖4所示,本發明第二實施例從客戶端側提出一種即時通訊鍵-值數據下發方法,包括:
            [0095]步驟S110,發送拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;
            [0096]步驟S111,接收服務器根據所述請求包所攜帶的參數下發的全量鍵-值數據或增量鍵-值數據;
            [0097]步驟S112,根據所述服務器的返回結果更新本地緩存數據。
            [0098]具體地,本實施例通過客戶端與服務器的交互,可以實現服務器向客戶端的鍵-值數據的增量下發,以解決鍵-值數據下發過程中網絡帶寬占用的問題。
            [0099]首先,客戶端在登錄時,向服務器發送拉取鍵-值數據的請求包,該請求包至少需要攜帶全量拉取時間戳、增量拉取時間戳和數據變更序列號,同時還可以攜帶二維校驗和參數,以便服務器根據請求包所攜帶的參數,選用相應的數據下發機制向客戶端下發鍵-值數據。
            [0100]其中,服務器設定的數據下發機制包括使用時間戳的全量數據下發機制、使用時間戳和序列號的增量數據下發機制,以及二維校驗和計算機制、將刪除的key在服務器進行緩存的機制等。
            [0101]其中,對于使用時間戳的全量數據下發機制,在客戶端首次登錄時,從服務器拉取全量鍵-值數據,并記錄全量拉取的時間戳,以后以首次全量拉取的時間戳為基準,每隔全量拉取時間間隔tl,重新完成一次全量拉取。上述全量拉取時間間隔tl可以根據實際情況來設定。
            [0102]對于使用時間戳和序列號的增量數據下發機制,在設定的兩次全量拉取之間的增量時間間隔t2中,根據條件判斷是否使用增量拉取。若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號不一致,則直接發起本次增量數據拉取;若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號一致,且上次增量拉取的時間距離當前時間的間隔大于或等于t2時,直接發起本次增量數據拉取;若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號一致,且上次增量拉取距離當前時間的間隔小于t2時,不發起本次增量拉取數據。本發明實施例中增量數據的含義解釋為新增、修改或刪除的鍵-值數據。
            [0103]上述二維校驗和計算機制是指服務器在增量數據下發過程中,盡力將有變化的鍵-值數據下發給客戶端,對于不修改的鍵-值數據則不下發給客戶端。
            [0104]上述將刪除的key在服務器進行緩存的機制是指,每次增量拉取的時候,將上次增量拉取和本次增量拉取時間間隔內被刪除的key返回給客戶端,由客戶端將對應的鍵-值數據刪除。
            [0105]需要說明的是,全量數據下發機制除了在首次登錄過程中獲取全量鍵-值數據夕卜,還作為增量數據下發機制的保護邏輯,在實際實現中,增量數據下發機制如果出錯,會導致客戶端獲取到的鍵-值數據錯亂,若定期進行全量數據下發,則可以修復錯亂的數據。
            [0106]客戶端在接收到服務器返回的結果后,更新本地緩存數據并展現給用戶。
            [0107]具體地,若服務器返回全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和,客戶端直接覆蓋本地緩存中的全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和。
            [0108]若服務器返回增量鍵-值數據、數據變更序列號、增量拉取時間戳和二維校驗和,客戶端直接覆蓋本地緩存中的數據變更序列號、增量拉取時間戳和二維校驗和,按照增量鍵-值數據的key更新本地緩存的數據,例如客戶端本地緩存中的全量數據有keyl-valuel、key2-value2, key3-value3,服務器下發的增量數據中包含 key2_value2’、key4-value4和刪除key列表key3,則更新后的全量數據為keyl-valuel、key2_value2’、key4_value4,注意為 keyl-valuel 不變,key2_value2’ 的 value 修改為最新,key3_value3被刪除,key4-value4為新加;
            [0109]若服務器返回客戶端數據為最新數據,則不需要修改數據,客戶端也不需要任何操作。
            [0110]本實施例客戶端與服務器之間進行交互實現即時通訊的鍵-值數據的下發過程,請參照上述實施例,在此不再贅述。
            [0111]本實施例通過上述方案,客戶端在登錄時向服務器發送拉取鍵-值數據的請求包,服務器在接收到該請求包時,根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由客戶端根據服務器的返回結果更新本地緩存數據并展現給用戶,其中,客戶端發送的請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號,從而實現了鍵-值數據的增量下發,減少網絡帶寬浪費,解決了鍵-值數據下發過程中網絡帶寬占用的問題,并保證即時通信客戶端和服務器的數據一致性。
            [0112]如圖5所示,本發明較佳實施例提出一種下發即時通訊鍵-值數據的服務器,包括:請求接收模塊201及下發處理模塊202,其中:
            [0113]請求接收模塊201,用于接收客戶端在登錄時發送的拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;
            [0114]下發處理模塊202,用于根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由所述客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。
            [0115]本實施例可以實現服務器鍵-值數據的增量下發,以解決鍵-值數據下發過程中網絡帶寬占用的問題。
            [0116]首先,客戶端在登錄時,向服務器發送拉取鍵-值數據的請求包,該請求包至少需要攜帶全量拉取時間戳、增量拉取時間戳和數據變更序列號,同時還可以攜帶二維校驗和參數,以便服務器根據請求包所攜帶的參數,選用相應的數據下發機制向客戶端下發鍵-值數據。
            [0117]服務器通過請求接收模塊201接收客戶端在登錄時發送的拉取鍵-值數據的請求包。
            [0118]服務器下發處理模塊202根據請求包所攜帶的參數,選用預設的數據下發機制,判斷是否下發數據,或者以何種方式下發鍵-值數據。
            [0119]本實施例中服務器設定的數據下發機制包括使用時間戳的全量數據下發機制、使用時間戳和序列號的增量數據下發機制,以及二維校驗和計算機制、將刪除的key在服務器進行緩存的機制等。
            [0120]其中,對于使用時間戳的全量數據下發機制,在客戶端首次登錄時,從服務器拉取全量鍵-值數據,并記錄全量拉取的時間戳,以后以首次全量拉取的時間戳為基準,每隔全量拉取時間間隔tl,重新完成一次全量拉取。上述全量拉取時間間隔tl可以根據實際情況來設定。
            [0121]對于使用時間戳和序列號的增量數據下發機制,在設定的兩次全量拉取之間的增量時間間隔t2中,根據條件判斷是否使用增量拉取。若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號不一致,則直接發起本次增量數據拉取;若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號一致,且上次增量拉取的時間距離當前時間的間隔大于或等于t2時,直接發起本次增量數據拉取;若客戶端緩存的鍵-值數據變更序列號和服務器存儲的鍵-值數據變更序列號一致,且上次增量拉取距離當前時間的間隔小于t2時,不發起本次增量拉取數據。本發明實施例中增量數據的含義解釋為新增、修改或刪除的鍵-值數據。
            [0122]上述二維校驗和計算機制是指服務器在增量數據下發過程中,盡力將有變化的鍵-值數據下發給客戶端,對于不修改的鍵-值數據則不下發給客戶端。
            [0123]上述將刪除的key在服務器進行緩存的機制是指,每次增量拉取的時候,將上次增量拉取和本次增量拉取時間間隔內被刪除的key返回給客戶端,由客戶端將對應的鍵-值數據刪除。
            [0124]需要說明的是,全量數據下發機制除了在首次登錄過程中獲取全量鍵-值數據夕卜,還作為增量數據下發機制的保護邏輯,在實際實現中,增量數據下發機制如果出錯,會導致客戶端獲取到的鍵-值數據錯亂,若定期進行全量數據下發,則可以修復錯亂的數據。
            [0125]客戶端在接收到服務器返回的結果后,更新本地緩存數據并展現給用戶。
            [0126]具體地,如圖6所示,作為一種實施方式,所述下發處理模塊202可以包括:判斷單元2021以及下發單元2022,其中:
            [0127]判斷單元2021,用于判斷所述請求包所攜帶的全量拉取時間戳、增量拉取時間戳和數據變更序列號設置是否為空;
            [0128]若客戶端是首次發送請求,則本地未緩存任何數據,請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置為空。
            [0129]下發單元2022,用于在所述請求包所攜帶的全量拉取時間戳、增量拉取時間戳和數據變更序列號設置為空時,向所述客戶端下發全量鍵-值數據、最新的全量拉取時間戳;否則,將所述請求包中的全量拉取時間戳與當前時間進行對比,獲取請求包中的全量拉取時間戳與當前時間之間的時間間隔;當所述全量拉取時間戳與當前時間之間的時間間隔大于或等于預設的全量拉取時間間隔tl時,服務器向所述客戶端下發全量鍵-值數據、最新的全量拉取時間戳。
            [0130]進一步的,所述下發單元2022還用于當所述全量拉取時間戳與當前時間之間的時間間隔小于預設的全量拉取時間間隔tl時,判斷所述請求包中的數據變更序列號與所述服務器本地保存的數據變更序列號是否一致;若不一致,則向所述客戶端下發增量鍵-值數據和最新的增量拉取時間戳;否則將所述請求包中的增量拉取時間戳與當前時間進行對比,獲取請求包中的增量拉取時間戳與當前時間之間的時間間隔;當所述增量拉取時間戳與當前時間之間的時間間隔大于或等于預設的兩次全量拉取之間的增量時間間隔t2時,所述服務器向所述客戶端下發增量鍵-值數據和最新的增量拉取時間戳;當所述增量拉取時間戳與當前時間之間的時間間隔小于預設的兩次全量拉取之間的增量時間間隔t2時,所述服務器不向所述客戶端下發鍵-值數據。
            [0131]進一步地,如前所述,客戶端發送的請求包中還可以攜帶有二維校驗和參數;在此種情形下,在所述服務器向所述客戶端下發全量鍵-值數據時,還同時下發根據所述全量鍵-值數據計算出的二維校驗和參數;
            [0132]在所述服務器向所述客戶端下發增量鍵-值數據時,還同時下發根據全量鍵-值數據計算出的二維校驗和參數。
            [0133]以下詳細闡述本實施例即時通訊鍵-值數據的下發過程:
            [0134]在滿足如下條件需要向客戶端下發全量鍵-值數據:客戶端請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置為空;或者,客戶端請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置不為空時,客戶端請求包中的全量拉取時間戳與當前時間相比,時間間隔大于或等于全量拉取的時間間隔tl。在此種條件下,服務器會下發全量鍵-值數據、最新的全量拉取時間戳和根據全量的鍵-值數據計算出的二維校驗和參數。
            [0135]在滿足如下條件需要向客戶端下發增量鍵-值數據、最新的增量拉取時間戳和根據全量的鍵-值數據計算出的二維校驗和:
            [0136]客戶端請求包中的全量拉取時間戳、增量拉取時間戳、數據變更序列號和二維校驗和參數設置不為空,且客戶端請求包中的全量拉取時間戳與當前時間相比,時間間隔小于全量拉取的時間間隔tl時,客戶端請求包中的數據變更序列號和服務器存儲的數據變更序列號不一致;或者,客戶端請求包中的數據變更序列號和服務器存儲的數據變更序列號一致時,客戶端請求包中的增量拉取時間戳與當前時間相比,時間間隔大于等于增量拉取的時間間隔t2,即每隔時間間隔t2,服務器一定會返回增量數據,作為數據變更序列號出錯(例如鍵-值數據變化了,數據變更序列號卻未改變)的一個容錯機制。
            [0137]其中,增量鍵-值數據包括兩個部分:上次拉取以來修改或新增的鍵-值數據,以及上次拉取以來刪除過的鍵-值數據的key。
            [0138]作為一種實施方式,所述下發單元2022在確定上次拉取以來修改或新增的鍵-值數據時可以采用以下方式:
            [0139]按照hash (key) %M將所述服務器的全量鍵-值數據劃分成M個集合,每個集合計算一個校驗和,得到M個校驗和;按照hash (key) %N將服務器的全量鍵-值數據劃分成N個集合,每個集合計算一個校驗和,得到N個校驗和,所述M個校驗和與N個校驗和組成所述服務器的二維校驗和參數;其中,二維校驗和的意思即為°觀和%N兩個維度,M和N不相等;
            [0140]校驗和參數的計算算法可以采用CRC、md5等校驗算法。上述hash (key)是按照hash算法將key映射為一個整型數。
            [0141]然后,將所述客戶端發送的請求包中的二維校驗和參數與所述服務器計算出的二維校驗和參數進行比較,確定修改或新增的鍵-值數據。
            [0142]具體地,以下采用一個實例說明如何根據二維校驗和確定新增和修改的鍵-值數據。
            [0143]設定客戶端請求包中的二維校驗和為{client_checksum_x_0, client_checksum_
            x_l,......, client_checksum_x_M_l}、{client_checksum_y_l, client_checksum_
            y_0,......,client_checksum_y_N-l},設定服務器計算出的二維校驗和為{server_
            checksum_x_0, server_checksum_x_l,......, server_checksum_x_M-l}、{server_
            checksum_y_0, server_checksum_y_l,......, server_checksum_y_N-l}。
            [0144]如果client_checksum_x_0 不等于 server_checksum_x_0,表明 hash (key) %M等于0的鍵-值集合中有鍵-值數據可能被修改或添加,導致服務器和客戶端的校驗和不一致。為了對返回的增量鍵-值數據進行進一步篩選,對hash (key) %M等于O的鍵-值集合中的每一個 key,設定 key 的具體取值為 key_k 且 hash (key_k) %N 等于 K,如果 client_checksum_y_K等于server_checksum_y_K,表明key_k對應的鍵-值數據沒有修改或增加,key_k不需要加入到可能增加或修改的鍵-值數據中,如果client_checksum_y_K不等于server_checksum_y_K,表明key_k對應的鍵-值數據可能修改或增加,key_k要加入到可能增加或修改的鍵-值數據中。
            [0145]在計算時,首先通過key%M計算出的校驗和得出可能增加或修改的鍵-值數據,再通過key%N計算出的校驗和排除一部分實際上沒有增加或修改的鍵-值數據,然后返回給客戶端。
            [0146]實際上,采用上述方法計算出來的增加或修改的鍵-值數據,其中有部分kye-value數據不變,但是增加或修改的鍵-值數據一定包含在里面。在實際工程實現中,可以采用一維或多維(即大于二維)校驗和的計算方法。
            [0147]作為另一種實施方式,所述下發單元2022在確定上次拉取以來修改或新增的鍵-值數據時還可以采用以下方式:
            [0148]所述下發單元2022為每條鍵-值數據記錄附加一時間戳;當新增或修改一條鍵-值數據記錄時,將該時間戳更新為當前時間;在所述客戶端拉取數據時,確定所述客戶端的請求包所攜帶的上次拉取數據的時間戳之后的所有鍵-值數據記錄為修改或新增的鍵-值數據。
            [0149]此種實施方式作為上述實施方式的替代實施方式。在此種實施方式中,可以考慮服務器在進行鍵-值數據的增量下發時,不使用上述圖3a所示的二維校驗和計算機制確定新增或修改的鍵-值數據記錄,而是為每條鍵-值數據記錄附加一個時間戳。當新增或修改一條鍵-值數據記錄時,將時間戳更新為當前時間,每次客戶端拉取數據時,帶上上次拉取數據的時間戳,在該時間戳之后的所有鍵-值數據記錄均為新增或修改的鍵-值數據,下發給客戶端。該替代方案的優點是可精確確定新增或修改的鍵-值數據記錄,缺點是對于海量的鍵-值數據,為每個鍵-值數據記錄附加一個時間戳,會占用服務器大量的存儲空間。
            [0150]進一步地,作為一種實施方式,所述下發單元2022還用于當一鍵-值數據被刪除時,將對應的key和刪除時間戳進行緩存;當所述刪除時間戳與當前時間之間的時間間隔大于所述預設的全量拉取時間間隔tl時,刪除所述對應的key ;當需要返回上次拉取以來刪除過的鍵-值數據的key時,將所有在上次拉取時間戳之后緩存的key返回給所述客戶端;所述上次拉取時間戳為所述請求包攜帶的全量拉取時間戳和增量拉取時間戳中最新的一個。
            [0151]本實施方式通過將刪除的key在服務器進行緩存的方式來確定并發送上次拉取以來刪除過的鍵-值數據的key。
            [0152]具體地,當某個鍵-值數據被刪除時,服務器會將對應的key和刪除時間戳緩存起來。因此,被緩存的刪除key會越來越多,需要有一個定期清理機制,將不再用到的刪除key從緩存中清除掉。
            [0153]當某個key的刪除時間戳距離當前時間的間隔大于全量拉取時間間隔tl時,該key即可被刪除掉,因為每隔全量拉取時間間隔tl,客戶端一定會發起一次全量拉取請求,覆蓋本地數據,在全量拉取時間間隔tl之前存儲的刪除key已經沒有意義了。
            [0154]當需要返回上次拉取以來刪除過的鍵-值數據的key時,服務器將所有在上次拉取時間戳之后緩存起來的key全部返回給客戶端。客戶端每次拉取都會帶上全量拉取時間戳和增量拉取時間戳,上次拉取時間戳即為全量拉取時間戳和增量拉取時間戳中最新的那一個。
            [0155]后續處理過程中,客戶端在接收服務器的返回的結果,更新本地緩存數據并展現給用戶。
            [0156]具體地,若服務器返回全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和,客戶端直接覆蓋本地緩存中的全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和。
            [0157]若服務器返回增量鍵-值數據、數據變更序列號、增量拉取時間戳和二維校驗和,客戶端直接覆蓋本地緩存中的數據變更序列號、增量拉取時間戳和二維校驗和,按照增量鍵-值數據的key更新本地緩存的數據,例如客戶端本地緩存中的全量數據有keyl-valuel、key2-value2, key3-value3,服務器下發的增量數據中包含 key2_value2’、key4-value4和刪除key列表key3,則更新后的全量數據為keyl-valuel、key2_value2’、key4_value4,注意為 keyl-valuel 不變,key2_value2’ 的 value 修改為最新,key3_value3被刪除,key4-value4為新加;
            [0158]若服務器返回客戶端數據為最新數據,則不需要修改數據,客戶端也不需要任何操作。
            [0159]本實施例通過上述方案,服務器在接收客戶端在登錄時發送的拉取鍵-值數據的請求包時;根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由客戶端根據服務器的返回結果更新本地緩存數據并展現給用戶,其中,客戶端發送的請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號,從而實現了鍵-值數據的增量下發,減少網絡帶寬浪費,解決了鍵-值數據下發過程中網絡帶寬占用的問題,并保證即時通信客戶端和服務器的數據一致性。
            [0160]如圖7所示,本發明較佳實施例提出一種下發即時通訊鍵-值數據的系統,包括客戶端301和服務器302,其中:
            [0161]所述客戶端,用于在登錄時向所述服務器發送拉取鍵-值數據的請求包;以及根據所述服務器的返回結果,更新本地緩存數據并展現給用戶。
            [0162]所述服務器302可以采用上述實施例所述的服務器,用于接收客戶端在登錄時發送的拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號;根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由所述客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。
            [0163]該客戶端與服務器之間進行交互實現即時通訊的鍵-值數據的下發過程,請參照上述實施例,在此不再贅述。
            [0164]其中,客戶端還用于當所述服務器返回全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和參數時,覆蓋本地緩存中的全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和參數;在所述服務器返回增量鍵-值數據、數據變更序列號、增量拉取時間戳和二維校驗和參數時,覆蓋本地緩存中的數據變更序列號、增量拉取時間戳和二維校驗和參數,并按照增量鍵-值數據的key更新本地緩存的數據。
            [0165]本發明實施例即時通訊鍵-值數據下發方法、服務器、客戶端及系統,服務器在接收客戶端在登錄時發送的拉取鍵-值數據的請求包時;根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由客戶端根據服務器的返回結果更新本地緩存數據并展現給用戶,其中,客戶端發送的請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號,從而實現了鍵-值數據的增量下發,減少網絡帶寬浪費,解決了鍵-值數據下發過程中網絡帶寬占用的問題,并保證即時通信客戶端和服務器的數據一致性。
            [0166]需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
            [0167]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
            [0168]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,月艮務器,或者網絡設備等)執行本發明各個實施例所述的方法。具體地,圖5、圖6所述的下發即時通訊鍵-值數據的服務器所對應的程序指令可以存儲在服務器的可讀存儲介質中,并被其中的至少一個處理器執行,以實現圖1至圖4所述的即時通訊鍵-值數據下發方法。
            [0169]以上所述僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或流程變換,或直接或間接運用在其它相關的【技術領域】,均同理包括在本發明的專利保護范圍內。
            【權利要求】
            1.一種即時通訊鍵-值數據下發方法,其特征在于,包括: 服務器接收客戶端在登錄時發送的拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號; 根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由所述客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。
            2.根據權利要求1所述的方法,其特征在于,所述根據請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據的步驟: 判斷所述請求包所攜帶的全量拉取時間戳、增量拉取時間戳和數據變更序列號設置是否為空;若是,則 服務器向所述客戶端下發全量鍵-值數據、最新的全量拉取時間戳;否則 將所述請求包中的全量拉取時間戳與當前時間進行對比,獲取請求包中的全量拉取時間戳與當前時間之間的時間間隔; 當所述全量拉取時間戳與當前時間之間的時間間隔大于或等于預設的全量拉取時間間隔tl時,服務器向所述客戶端下發全量鍵-值數據、最新的全量拉取時間戳。
            3.根據權利要求2所述的方法,其特征在于,還包括: 當所述全量拉取時間戳與當前時間之間的時間間隔小于預設的全量拉取時間間隔tl時,判斷所述請求包中的數據變更序列號與所述服務器本地保存的數據變更序列號是否一致;若不一致,則 所述服務器向所述客戶端下發增量鍵-值數據和最新的增量拉取時間戳;否則 將所述請求包中的增量拉取時間戳與當前時間進行對比,獲取請求包中的增量拉取時間戳與當前時間之間的時間間隔; 當所述增量拉取時間戳與當前時間之間的時間間隔大于或等于預設的兩次全量拉取之間的增量時間間隔t2時,所述服務器向所述客戶端下發增量鍵-值數據和最新的增量拉取時間戳; 當所述增量拉取時間戳與當前時間之間的時間間隔小于預設的兩次全量拉取之間的增量時間間隔t2時,所述服務器不向所述客戶端下發鍵-值數據。
            4.根據權利要求3所述的方法,其特征在于,所述增量鍵-值數據包括上次拉取以來修改或新增的鍵-值數據,以及上次拉取以來刪除過的鍵-值數據的key。
            5.根據權利要求1-4中任一項所述的方法,其特征在于,所述請求包還攜帶有二維校驗和參數;所述方法還包括: 在所述服務器向所述客戶端下發全量鍵-值數據時,還同時下發根據所述全量鍵-值數據計算出的二維校驗和參數; 在所述服務器向所述客戶端下發增量鍵-值數據時,還同時下發根據全量鍵-值數據計算出的二維校驗和參數。
            6.根據權利要求5所述的方法,其特征在于,所述服務器確定上次拉取以來修改或新增的鍵-值數據的步驟包括: 按照hash (key) %M將所述服務器的全量鍵_值數據劃分成M個集合,每個集合計算一個校驗和,得到M個校驗和;按照hash (key) %N將服務器的全量鍵-值數據劃分成N個集合,每個集合計算一個校驗和,得到N個校驗和,所述M個校驗和與N個校驗和組成所述服務器的二維校驗和參數;其中,M和N不相等; 將所述客戶端發送的請求包中的二維校驗和參數與所述服務器計算出的二維校驗和參數進行比較,確定修改或新增的鍵-值數據。
            7.根據權利要求5所述的方法,其特征在于,所述服務器確定并發送上次拉取以來刪除過的鍵-值數據的key的步驟包括: 當一鍵-值數據被刪除時,將對應的key和刪除時間戳進行緩存; 當所述刪除時間戳與當前時間之間的時間間隔大于所述預設的全量拉取時間間隔tl時,刪除所述對應的key ; 當需要返回上次拉取以來刪除過的鍵-值數據的key時,將所有在上次拉取時間戳之后緩存的key返回給所述客戶端;所述上次拉取時間戳為所述請求包攜帶的全量拉取時間戳和增量拉取時間戳中最新的一個。
            8.根據權利要求4所述的方法,其特征在于,所述服務器確定上次拉取以來修改或新增的鍵-值數據的步驟包括: 所述服務器為每條鍵-值數據記錄附加一時間戳; 當新增或修改一條鍵-值數據記錄時,將該時間戳更新為當前時間; 在所述客戶端拉取數據時,確定所述客戶端的請求包所攜帶的上次拉取數據的時間戳之后的所有鍵-值數據記錄為修改或新增的鍵-值數據。
            9.一種下發即時通訊鍵-值數據的服務器,其特征在于,包括: 請求接收模塊,用于接收客戶端在登錄時發送的拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號; 下發處理模塊,用于根據所述請求包所攜帶的參數,選用預設的數據下發機制,向所述客戶端下發全量鍵-值數據或向所述客戶端下發增量鍵-值數據或不下發鍵-值數據,由所述客戶端根據所述服務器的返回結果更新本地緩存數據并展現給用戶。
            10.根據權利要求9所述的服務器,其特征在于,所述下發處理模塊包括: 判斷單元,用于判斷所述請求包所攜帶的全量拉取時間戳、增量拉取時間戳和數據變更序列號設置是否為空; 下發單元,用于在所述請求包所攜帶的全量拉取時間戳、增量拉取時間戳和數據變更序列號設置為空時,向所述客戶端下發全量鍵-值數據、最新的全量拉取時間戳;否則,將所述請求包中的全量拉取時間戳與當前時間進行對比,獲取請求包中的全量拉取時間戳與當前時間之間的時間間隔;當所述全量拉取時間戳與當前時間之間的時間間隔大于或等于預設的全量拉取時間間隔tl時,服務器向所述客戶端下發全量鍵-值數據、最新的全量拉取時間戳。
            11.根據權利要求9所述的服務器,其特征在于,所述下發單元還用于當所述全量拉取時間戳與當前時間之間的時間間隔小于預設的全量拉取時間間隔tl時,判斷所述請求包中的數據變更序列號與所述服務器本地保存的數據變更序列號是否一致;若不一致,則向所述客戶端下發增量鍵-值數據和最新的增量拉取時間戳;否則將所述請求包中的增量拉取時間戳與當前時間進行對比,獲取請求包中的增量拉取時間戳與當前時間之間的時間間隔;當所述增量拉取時間戳與當前時間之間的時間間隔大于或等于預設的兩次全量拉取之間的增量時間間隔t2時,所述服務器向所述客戶端下發增量鍵-值數據和最新的增量拉取時間戳;當所述增量拉取時間戳與當前時間之間的時間間隔小于預設的兩次全量拉取之間的增量時間間隔t2時,所述服務器不向所述客戶端下發鍵-值數據。
            12.根據權利要求11所述的服務器,其特征在于,所述增量鍵-值數據包括上次拉取以來修改或新增的鍵-值數據,以及上次拉取以來刪除過的鍵-值數據的key。
            13.根據權利要求10、11或12所述的服務器,其特征在于,所述請求包還攜帶有二維校驗和參數;所述下發單元還用于在向所述客戶端下發全量鍵-值數據時,還同時下發根據所述全量鍵-值數據計算出的二維校驗和參數;或者,在向所述客戶端下發增量鍵-值數據時,還同時下發根據全量鍵-值數據計算出的二維校驗和參數。
            14.根據權利要求13所述的服務器,其特征在于,所述下發單元還用于按照hash (key) %M將所述服務器的全量鍵_值數據劃分成M個集合,每個集合計算一個校驗和,得到M個校驗和;按照hash (key) %N將服務器的全量鍵-值數據劃分成N個集合,每個集合計算一個校驗和,得到N個校驗和,所述M個校驗和與N個校驗和組成所述服務器的二維校驗和參數;其中,M和N不相等;將所述客戶端發送的請求包中的二維校驗和參數與所述服務器計算出的二維校驗和參數進行比較,確定修改或新增的鍵-值數據。
            15.根據權利要求13所述的服務器,其特征在于,所述下發單元還用于當一鍵-值數據被刪除時,將對應的key和刪除時間戳進行緩存;當所述刪除時間戳與當前時間之間的時間間隔大于所述預設的全量拉取時間間隔tl時,刪除所述對應的key ;當需要返回上次拉取以來刪除過的鍵-值數據的key時,將所有在上次拉取時間戳之后緩存的key返回給所述客戶端;所述上次拉取時間戳為所述請求包攜帶的全量拉取時間戳和增量拉取時間戳中最新的一個。
            16.根據權利要求12所述的服務器,其特征在于,所述下發單元還用于為每條鍵-值數據記錄附加一時間戳;當新增或修改一條鍵-值數據記錄時,將該時間戳更新為當前時間;在所述客戶端拉取數據時,確定所述客戶端的請求包所攜帶的上次拉取數據的時間戳之后的所有鍵-值數據記錄為修改或新增的鍵-值數據。
            17.—種即時通訊鍵-值數據下發方法,其特征在于,包括: 發送拉取鍵-值數據的請求包;所述請求包至少攜帶有全量拉取時間戳、增量拉取時間戳和數據變更序列號; 接收服務器根據所述請求包所攜帶的參數下發的全量鍵-值數據或增量鍵-值數據; 根據所述服務器的返回結果更新本地緩存數據。
            18.根據權利要求17所述的方法,其特征在于,所述根據所述服務器的返回結果更新本地緩存數據步驟包括: 在所述服務器返回全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和參數時,覆蓋本地緩存中的全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和參數; 在所述服務器返回增量鍵-值數據、數據變更序列號、增量拉取時間戳和二維校驗和參數時,覆蓋本地緩存中的數據變更序列號、增量拉取時間戳和二維校驗和參數,并按照增量鍵-值數據的key更新本地緩存的數據。
            19.一種下發即時通訊鍵-值數據的系統,其特征在于,包括客戶端和權利要求9-16中任一項所述的服務器,其中: 所述客戶端,用于在登錄時向所述服務器發送拉取鍵-值數據的請求包;以及根據所述服務器的返回結果,更新本地緩存數據并展現給用戶。
            20.根據權利要求19所述的系統,其特征在于, 所述客戶端還用于當所述服務器返回全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和參數時,覆蓋本地緩存中的全量鍵-值數據、數據變更序列號、全量拉取時間戳和二維校驗和參數;在所述服務器返回增量鍵-值數據、數據變更序列號、增量拉取時間戳和二維校驗和參數時,覆蓋本地緩存中的數據變更序列號、增量拉取時間戳和二維校驗和參數,并按照增量鍵-值數據的key更新本地緩存的數據。
            【文檔編號】H04L29/08GK104348849SQ201310316622
            【公開日】2015年2月11日 申請日期:2013年7月25日 優先權日:2013年7月25日
            【發明者】李艷國, 廖念波, 陳國林, 舒星 申請人:騰訊科技(深圳)有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品