本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲(chǔ)方法及裝置。
背景技術(shù):
數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的查詢、處理速度遠(yuǎn)遠(yuǎn)超過(guò)普通文件的處理速度。數(shù)據(jù)庫(kù)中除存儲(chǔ)有數(shù)據(jù)之外,還存儲(chǔ)有數(shù)據(jù)對(duì)應(yīng)的用戶基本信息,且該用戶基本信息只保留用戶的最新?tīng)顟B(tài)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法及裝置,用于優(yōu)化數(shù)據(jù)的存儲(chǔ)方案。
一種數(shù)據(jù)存儲(chǔ)方法,包括以下步驟:
根據(jù)所述待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的用戶身份標(biāo)識(shí)從所述內(nèi)存中查詢所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的第一map集合,所述第一map集合用于存儲(chǔ)所述用戶身份標(biāo)識(shí)和第二map集合,所述第二map集合用于存儲(chǔ)所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù);
對(duì)所述第一map集合對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,以使所述第一map集合中的第二map集合所存儲(chǔ)的數(shù)據(jù)為最新數(shù)據(jù);
將所述排重后的待存儲(chǔ)數(shù)據(jù)和預(yù)設(shè)數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)進(jìn)行對(duì)比,判斷所述預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存儲(chǔ)有所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù);
根據(jù)所述判斷結(jié)果確定是否將所述待存儲(chǔ)數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中。
在一個(gè)實(shí)施例中,所述對(duì)所述第一map集合對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,包括:
判斷所述第二map集合中是否存在已有數(shù)據(jù);
當(dāng)所述第二map集合中不存在已有數(shù)據(jù)時(shí),創(chuàng)建新的map集合替換所述第二map集合;
當(dāng)所述第二map集合中存在已有數(shù)據(jù)時(shí),判斷所述已有數(shù)據(jù)寫入所述第二map集合中的第一時(shí)間是否小于所述待存儲(chǔ)數(shù)據(jù)寫入內(nèi)存中的第二時(shí)間;
當(dāng)所述第一時(shí)間小于所述第二時(shí)間時(shí),將所述已有數(shù)據(jù)替換為所述待存儲(chǔ)數(shù)據(jù)。
在一個(gè)實(shí)施例中,所述根據(jù)所述判斷結(jié)果確定是否將所述待存儲(chǔ)數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中,包括:
當(dāng)所述預(yù)設(shè)數(shù)據(jù)庫(kù)中未存儲(chǔ)有所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至所述預(yù)設(shè)數(shù)據(jù)庫(kù)中;
當(dāng)所述預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)有所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),根據(jù)所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間來(lái)確定是否將所述待存儲(chǔ)數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中。
在一個(gè)實(shí)施例中,所述根據(jù)所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間來(lái)確定是否將所述待存儲(chǔ)數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中,包括:
判斷所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間是否小于當(dāng)前時(shí)間;
當(dāng)所述第三時(shí)間小于所述當(dāng)前時(shí)間時(shí),將所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)替換為所述待存儲(chǔ)數(shù)據(jù);
當(dāng)所述第三時(shí)間大于或等于所述當(dāng)前時(shí)間時(shí),丟棄所述待存儲(chǔ)數(shù)據(jù)。
在一個(gè)實(shí)施例中,所述預(yù)設(shè)數(shù)據(jù)庫(kù)為Redis。
一種數(shù)據(jù)存儲(chǔ)裝置,包括:
查詢模塊,用于根據(jù)所述待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的用戶身份標(biāo)識(shí)從所述內(nèi)存中查詢所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的第一map集合,所述第一map集合用于存儲(chǔ)所述用戶身份標(biāo)識(shí)和第二map集合,所述第二map集合用于存儲(chǔ)所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù);
排重模塊,用于對(duì)所述第一map集合對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,以使所述第一map集合中的第二map集合所存儲(chǔ)的數(shù)據(jù)為最新數(shù)據(jù);
對(duì)比模塊,用于將所述排重后的待存儲(chǔ)數(shù)據(jù)和預(yù)設(shè)數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)進(jìn)行對(duì)比,判斷所述預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存儲(chǔ)有所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù);
確定模塊,用于根據(jù)所述判斷結(jié)果確定是否將所述待存儲(chǔ)數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中。
在一個(gè)實(shí)施例中,所述排重模塊包括:
第一判斷單元,用于判斷所述第二map集合中是否存在已有數(shù)據(jù);
創(chuàng)建單元,用于當(dāng)所述第二map集合中不存在已有數(shù)據(jù)時(shí),創(chuàng)建新的map集合替換所述第二map集合;
第二判斷單元,用于當(dāng)所述第二map集合中存在已有數(shù)據(jù)時(shí),判斷所述已有數(shù)據(jù)寫入所述第二map集合中的第一時(shí)間是否小于所述待存儲(chǔ)數(shù)據(jù)寫入內(nèi)存中的第二時(shí)間;
替換單元,用于當(dāng)所述第一時(shí)間小于所述第二時(shí)間時(shí),將所述已有數(shù)據(jù)替換為所述待存儲(chǔ)數(shù)據(jù)。
在一個(gè)實(shí)施例中,所述確定模塊包括:
存儲(chǔ)單元,用于當(dāng)所述預(yù)設(shè)數(shù)據(jù)庫(kù)中未存儲(chǔ)有所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至所述預(yù)設(shè)數(shù)據(jù)庫(kù)中;
寫入單元,用于當(dāng)所述預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)有所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),根據(jù)所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間來(lái)確定是否將所述待存儲(chǔ)數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中。
在一個(gè)實(shí)施例中,所述寫入單元還用于:
判斷所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間是否小于當(dāng)前時(shí)間;
當(dāng)所述第三時(shí)間小于所述當(dāng)前時(shí)間時(shí),將所述用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)替換為所述待存儲(chǔ)數(shù)據(jù);
當(dāng)所述第三時(shí)間大于或等于所述當(dāng)前時(shí)間時(shí),丟棄所述待存儲(chǔ)數(shù)據(jù)。
在一個(gè)實(shí)施例中,所述預(yù)設(shè)數(shù)據(jù)庫(kù)為Redis。
本發(fā)明實(shí)施例的一些有益效果可以包括:
采用本發(fā)明實(shí)施例提供的技術(shù)方案,通過(guò)待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的用戶身份標(biāo)識(shí)從內(nèi)存中查詢對(duì)應(yīng)的第一map集合,然后對(duì)第一map集合中的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,使得第一map集合所存儲(chǔ)的數(shù)據(jù)為最新數(shù)據(jù),然后,將排重后的待存儲(chǔ)數(shù)據(jù)和預(yù)設(shè)數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)進(jìn)行對(duì)比,以判斷出預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù),并根據(jù)判斷結(jié)果確定是否將待存儲(chǔ)數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中,在整體上優(yōu)化了數(shù)據(jù)存儲(chǔ)的方案,使得待存儲(chǔ)數(shù)據(jù)能夠先在內(nèi)存中進(jìn)行排重處理,從而避免寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的待存儲(chǔ)數(shù)據(jù)重復(fù),且避免了預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)已無(wú)用的舊數(shù)據(jù)。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫的說(shuō)明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
附圖說(shuō)明
附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)的方法的流程圖;
圖2為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)的方法中步驟S12的流程圖;
圖3為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)的方法中步驟S14的流程圖;
圖4為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)裝置的框圖;
圖5為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)裝置中排重模塊的框圖;
圖6為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)裝置中確定模塊的框圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)的方法的流程圖。如圖1所示,該方法包括以下步驟S11-S14:
步驟S11,根據(jù)待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的用戶身份標(biāo)識(shí)從內(nèi)存中查詢用戶身份標(biāo)識(shí)對(duì)應(yīng)的第一map集合。
其中,第一map集合用于存儲(chǔ)用戶身份標(biāo)識(shí)和第二map集合,第二map集合用于存儲(chǔ)用戶身份標(biāo)識(shí)對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù)。
步驟S12,對(duì)第一map集合對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,以使第一map集合中的第二map集合所存儲(chǔ)的數(shù)據(jù)為最新數(shù)據(jù)。
步驟S13,將排重后的待存儲(chǔ)數(shù)據(jù)和預(yù)設(shè)數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)進(jìn)行對(duì)比,判斷預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)。
步驟S14,根據(jù)判斷結(jié)果確定是否將待存儲(chǔ)數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中。
在一個(gè)實(shí)施例中,如圖2所示,步驟S12可執(zhí)行為以下步驟S21-S24:
步驟S21,判斷第二map集合中是否存在已有數(shù)據(jù)。當(dāng)?shù)诙ap集合中不存在已有數(shù)據(jù)時(shí),執(zhí)行步驟S22;當(dāng)?shù)诙ap集合中存在已有數(shù)據(jù)時(shí),執(zhí)行步驟S23。
步驟S22,創(chuàng)建新的map集合替換第二map集合。
步驟S23,判斷已有數(shù)據(jù)寫入第二map集合中的第一時(shí)間是否小于待存儲(chǔ)數(shù)據(jù)寫入內(nèi)存中的第二時(shí)間。當(dāng)?shù)谝粫r(shí)間小于第二時(shí)間時(shí),執(zhí)行步驟S24;當(dāng)?shù)谝粫r(shí)間大于或等于第二時(shí)間時(shí),程序結(jié)束。
步驟S24,將已有數(shù)據(jù)替換為待存儲(chǔ)數(shù)據(jù)。
該實(shí)施例中,通過(guò)判斷第二map集合中是否存在已有數(shù)據(jù),并在第二map集合中存在已有數(shù)據(jù)時(shí)判斷該已有數(shù)據(jù)是否的寫入時(shí)間是否小于待存儲(chǔ)數(shù)據(jù)的寫入時(shí)間,從而判斷出該已有數(shù)據(jù)是否為最新數(shù)據(jù),如果不是最新數(shù)據(jù),則將該已有數(shù)據(jù)替換為待存儲(chǔ)數(shù)據(jù),確保了第二map集合中存儲(chǔ)的數(shù)據(jù)均為最新數(shù)據(jù)。
在一個(gè)實(shí)施例中,根據(jù)步驟S13的判斷結(jié)果的不同,步驟S14可執(zhí)行為以下兩種方式:
方式一、當(dāng)預(yù)設(shè)數(shù)據(jù)庫(kù)中未存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至預(yù)設(shè)數(shù)據(jù)庫(kù)中。
方式二、當(dāng)預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),根據(jù)用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間來(lái)確定是否將待存儲(chǔ)數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中。
當(dāng)預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),即采用方式二執(zhí)行步驟S14時(shí),可通過(guò)如圖3所示的步驟S31-S33來(lái)確定是否寫入待存儲(chǔ)數(shù)據(jù):
步驟S31,判斷用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間是否小于當(dāng)前時(shí)間;當(dāng)?shù)谌龝r(shí)間小于當(dāng)前時(shí)間時(shí),執(zhí)行步驟S32;當(dāng)?shù)谌龝r(shí)間大于或等于當(dāng)前時(shí)間時(shí),執(zhí)行步驟S33。
步驟S32,將用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)替換為待存儲(chǔ)數(shù)據(jù);
步驟S33,丟棄待存儲(chǔ)數(shù)據(jù)。
該實(shí)施例通過(guò)將數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的時(shí)間與當(dāng)前時(shí)間對(duì)比,并在數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的時(shí)間小于當(dāng)前時(shí)間時(shí)將該數(shù)據(jù)替換為待存儲(chǔ)數(shù)據(jù),從而確保預(yù)設(shè)數(shù)據(jù)庫(kù)中均存儲(chǔ)最新數(shù)據(jù),并且,在數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的時(shí)間大于或等于當(dāng)前時(shí)間時(shí)丟棄待存儲(chǔ)數(shù)據(jù),避免了預(yù)設(shè)數(shù)據(jù)庫(kù)中重復(fù)存儲(chǔ)相同數(shù)據(jù)的情況。
在一個(gè)實(shí)施例中,預(yù)設(shè)數(shù)據(jù)庫(kù)為Redis。
上述任一實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法至少具有以下有益效果:
采用本發(fā)明實(shí)施例提供的技術(shù)方案,通過(guò)待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的用戶身份標(biāo)識(shí)從內(nèi)存中查詢對(duì)應(yīng)的第一map集合,然后對(duì)第一map集合中的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,使得第一map集合所存儲(chǔ)的數(shù)據(jù)為最新數(shù)據(jù),然后,將排重后的待存儲(chǔ)數(shù)據(jù)和預(yù)設(shè)數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)進(jìn)行對(duì)比,以判斷出預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù),并根據(jù)判斷結(jié)果確定是否將待存儲(chǔ)數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中,在整體上優(yōu)化了數(shù)據(jù)存儲(chǔ)的方案,使得待存儲(chǔ)數(shù)據(jù)能夠先在內(nèi)存中進(jìn)行排重處理,從而避免寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的待存儲(chǔ)數(shù)據(jù)重復(fù),且避免了預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)已無(wú)用的舊數(shù)據(jù)。
圖4為本發(fā)明實(shí)施例中一種數(shù)據(jù)存儲(chǔ)裝置的框圖。如圖4所示,該裝置包括:
查詢模塊41,用于根據(jù)待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的用戶身份標(biāo)識(shí)從內(nèi)存中查詢用戶身份標(biāo)識(shí)對(duì)應(yīng)的第一map集合,第一map集合用于存儲(chǔ)用戶身份標(biāo)識(shí)和第二map集合,第二map集合用于存儲(chǔ)用戶身份標(biāo)識(shí)對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù);
排重模塊42,用于對(duì)第一map集合對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,以使第一map集合中的第二map集合所存儲(chǔ)的數(shù)據(jù)為最新數(shù)據(jù);
對(duì)比模塊43,用于將排重后的待存儲(chǔ)數(shù)據(jù)和預(yù)設(shè)數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)進(jìn)行對(duì)比,判斷預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù);
確定模塊44,用于根據(jù)判斷結(jié)果確定是否將待存儲(chǔ)數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中。
在一個(gè)實(shí)施例中,如圖5所示,排重模塊42包括:
第一判斷單元421,用于判斷第二map集合中是否存在已有數(shù)據(jù);
創(chuàng)建單元422,用于當(dāng)?shù)诙ap集合中不存在已有數(shù)據(jù)時(shí),創(chuàng)建新的map集合替換第二map集合;
第二判斷單元423,用于當(dāng)?shù)诙ap集合中存在已有數(shù)據(jù)時(shí),判斷已有數(shù)據(jù)寫入第二map集合中的第一時(shí)間是否小于待存儲(chǔ)數(shù)據(jù)寫入內(nèi)存中的第二時(shí)間;
替換單元424,用于當(dāng)?shù)谝粫r(shí)間小于第二時(shí)間時(shí),將已有數(shù)據(jù)替換為待存儲(chǔ)數(shù)據(jù)。
在一個(gè)實(shí)施例中,如圖6所示,確定模塊44包括:
存儲(chǔ)單元441,用于當(dāng)預(yù)設(shè)數(shù)據(jù)庫(kù)中未存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至預(yù)設(shè)數(shù)據(jù)庫(kù)中;
寫入單元442,用于當(dāng)預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)時(shí),根據(jù)用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間來(lái)確定是否將待存儲(chǔ)數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中。
在一個(gè)實(shí)施例中,寫入單元442還用于:
判斷用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的第三時(shí)間是否小于當(dāng)前時(shí)間;
當(dāng)?shù)谌龝r(shí)間小于當(dāng)前時(shí)間時(shí),將用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)替換為待存儲(chǔ)數(shù)據(jù);
當(dāng)?shù)谌龝r(shí)間大于或等于當(dāng)前時(shí)間時(shí),丟棄待存儲(chǔ)數(shù)據(jù)。
在一個(gè)實(shí)施例中,預(yù)設(shè)數(shù)據(jù)庫(kù)為Redis。
采用本發(fā)明實(shí)施例提供的裝置,通過(guò)待存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)的用戶身份標(biāo)識(shí)從內(nèi)存中查詢對(duì)應(yīng)的第一map集合,然后對(duì)第一map集合中的待存儲(chǔ)數(shù)據(jù)進(jìn)行排重處理,使得第一map集合所存儲(chǔ)的數(shù)據(jù)為最新數(shù)據(jù),然后,將排重后的待存儲(chǔ)數(shù)據(jù)和預(yù)設(shè)數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)進(jìn)行對(duì)比,以判斷出預(yù)設(shè)數(shù)據(jù)庫(kù)中是否存儲(chǔ)有用戶身份標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù),并根據(jù)判斷結(jié)果確定是否將待存儲(chǔ)數(shù)據(jù)寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中,在整體上優(yōu)化了數(shù)據(jù)存儲(chǔ)的方案,使得待存儲(chǔ)數(shù)據(jù)能夠先在內(nèi)存中進(jìn)行排重處理,從而避免寫入預(yù)設(shè)數(shù)據(jù)庫(kù)中的待存儲(chǔ)數(shù)據(jù)重復(fù),且避免了預(yù)設(shè)數(shù)據(jù)庫(kù)中存儲(chǔ)已無(wú)用的舊數(shù)據(jù)。
關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。