[發(fā)明專利]一種數(shù)據(jù)處理方法及裝置有效
| 申請?zhí)枺?/td> | 202010740528.8 | 申請日: | 2020-07-28 |
| 公開(公告)號: | CN111858637B | 公開(公告)日: | 2023-08-18 |
| 發(fā)明(設(shè)計)人: | 林俊洪 | 申請(專利權(quán))人: | 廈門網(wǎng)宿有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/2455 |
| 代理公司: | 北京同達信恒知識產(chǎn)權(quán)代理有限公司 11291 | 代理人: | 彭燕 |
| 地址: | 361003 福建省廈門市*** | 國省代碼: | 福建;35 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)處理 方法 裝置 | ||
本發(fā)明實施例公開了一種數(shù)據(jù)處理方法及裝置,其中方法包括:將redis緩存中key值相同的各待處理數(shù)據(jù)構(gòu)成消費數(shù)據(jù)集;每個所述消費數(shù)據(jù)集中的待處理數(shù)據(jù)的數(shù)量不超過N條,其中N為正整數(shù);分別對各個未加鎖的消費數(shù)據(jù)集進行加鎖;獲取到消費數(shù)據(jù)集鎖的線程對消費數(shù)據(jù)集中的待處理數(shù)據(jù)進行處理,并針對消費數(shù)據(jù)集中的所有待處理數(shù)據(jù)的處理結(jié)果進行一次性入庫操作。該方案可以達到在不發(fā)生數(shù)據(jù)堆積的前提下,仍能夠準(zhǔn)確地處理redis中待處理的數(shù)據(jù)的效果。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及裝置。
背景技術(shù)
目前,對于上報的數(shù)據(jù)的處理方式,主要是先將上報的數(shù)據(jù)緩存到redis數(shù)據(jù)庫(Remote?Dictionary?Server,即遠程字典服務(wù))中,然后由多線程去處理緩存的數(shù)據(jù)。
然而,上述的數(shù)據(jù)處理方式,往往會發(fā)生下面的問題:
1、在不使用加鎖機制的情況下,由于是通過多線程對待處理的數(shù)據(jù)進行處理的方式,則對于redis中的待處理的數(shù)據(jù),比較容易發(fā)生重復(fù)讀取待處理的數(shù)據(jù)的現(xiàn)象,從而有可能造成數(shù)據(jù)處理的錯誤;
2、在使用加鎖機制的情況下,則需要等待多線程對redis中待處理的數(shù)據(jù)實現(xiàn)完全處理后,redis方可用于緩存新的上報的數(shù)據(jù),這樣的話,極容易導(dǎo)致上報的數(shù)據(jù)發(fā)生堆積的現(xiàn)象,從而會影響數(shù)據(jù)上報。
對于以上問題,現(xiàn)有技術(shù)目前還無法提供一種在不發(fā)生數(shù)據(jù)堆積的前提下,仍能夠準(zhǔn)確地處理緩存中待處理的數(shù)據(jù)的方法。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)處理方法及裝置,用以解決現(xiàn)有技術(shù)無法在不發(fā)生數(shù)據(jù)堆積的前提下,仍能夠準(zhǔn)確地處理緩存中待處理的數(shù)據(jù)的問題。
第一方面,本發(fā)明實施例提供一種數(shù)據(jù)處理方法,該方法包括:將redis緩存中key值相同的各待處理數(shù)據(jù)構(gòu)成消費數(shù)據(jù)集;每個所述消費數(shù)據(jù)集中的所述待處理數(shù)據(jù)的數(shù)量不超過N條,其中N為正整數(shù);分別對各個未加鎖的所述消費數(shù)據(jù)集進行加鎖;獲取到所述消費數(shù)據(jù)集鎖的線程對所述消費數(shù)據(jù)集中的所述待處理數(shù)據(jù)進行處理,并針對所述消費數(shù)據(jù)集中的所有所述待處理數(shù)據(jù)的處理結(jié)果進行一次性入庫操作。
眾所周知,redis數(shù)據(jù)庫是基于key-value的方式對數(shù)據(jù)進行存儲的,同一key值下存儲的value數(shù)據(jù)可以是非常龐大的,基于該方案,通過將客戶端上報至redis緩存中key值相同的各待處理數(shù)據(jù)構(gòu)成一個個的消費數(shù)據(jù)集,從而使得可分別對各消費數(shù)據(jù)集進行處理,其中每個消費數(shù)據(jù)集中的待處理數(shù)據(jù)的數(shù)量不超過N條,從而保證了同一key值下的各待處理數(shù)據(jù)在上報過程中不會發(fā)生堆積,后續(xù)的數(shù)據(jù)處理過程也不會影響數(shù)據(jù)上報過程;此外,通過為未加鎖的各個消費數(shù)據(jù)集設(shè)置鎖,從而在數(shù)據(jù)處理過程中,只有獲取到鎖的消費線程才可對該消費數(shù)據(jù)集中的待處理數(shù)據(jù)進行處理,從而避免了同一消費數(shù)據(jù)集中的待處理數(shù)據(jù)被多個線程都進行處理而發(fā)生數(shù)據(jù)處理錯誤的現(xiàn)象,保證了待處理數(shù)據(jù)可以被準(zhǔn)確地處理。該方案可以達到在不發(fā)生數(shù)據(jù)堆積的前提下,仍能夠準(zhǔn)確地處理redis中待處理的數(shù)據(jù)的效果。
在一種可能的實現(xiàn)方法中,所述加鎖步驟之前,還包括:為不同的所述消費數(shù)據(jù)集設(shè)置不同的key值。
基于該方案,在數(shù)據(jù)上報至redis緩存中時,通過將所上報的數(shù)據(jù)按批次的存儲在消費數(shù)據(jù)集中,并為不同的消費數(shù)據(jù)集設(shè)置不同的key值,相當(dāng)于將各消費數(shù)據(jù)集中的待處理數(shù)據(jù)從原key值中移出,從而可以實現(xiàn)分別對各個消費數(shù)據(jù)集進行加鎖,避免因消費數(shù)據(jù)集的加鎖影響原key值下其他待處理數(shù)據(jù)的上報,同時避免發(fā)生后期上報的數(shù)據(jù)對前期上報的數(shù)據(jù)的覆蓋的現(xiàn)象。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廈門網(wǎng)宿有限公司,未經(jīng)廈門網(wǎng)宿有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010740528.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)處理設(shè)備,數(shù)據(jù)處理方法,和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理電路、數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法、數(shù)據(jù)處理控制方法
- 數(shù)據(jù)處理設(shè)備、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法及計算機可讀取的記錄介質(zhì)
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序





