本發(fā)明涉及一種實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法、裝置、介質(zhì)及設(shè)備,屬于數(shù)據(jù)處理。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的興起,信息化水平的提升,對數(shù)據(jù)采集的及時性要求越來越快,系統(tǒng)的穩(wěn)定性要求越來越高,同時應(yīng)對海量數(shù)據(jù)的上傳,系統(tǒng)需要對數(shù)據(jù)進(jìn)行批量采集、數(shù)據(jù)清洗、數(shù)據(jù)存儲及后續(xù)的數(shù)據(jù)分析,而在海量數(shù)據(jù)處理面前,關(guān)系型數(shù)據(jù)庫卻成為了系統(tǒng)運(yùn)行的瓶頸,在存儲與查詢時效率低下,給研發(fā)人員帶來了被動,在極端情況下,數(shù)據(jù)庫可能因?yàn)閴毫栴}直接導(dǎo)致宕機(jī)或崩潰。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的缺陷,提供一種實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法、裝置、介質(zhì)及設(shè)備。
2、為解決上述技術(shù)問題,本發(fā)明是采用下述技術(shù)方案實(shí)現(xiàn)的。
3、一方面,本發(fā)明公開了一種實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法,包括:
4、獲取客戶訪問請求,根據(jù)客戶訪問請求在布隆過濾器中查詢請求的數(shù)據(jù)對應(yīng)的hash值;
5、若在布隆過濾器中查詢到所述對應(yīng)的hash值,則根據(jù)所述對應(yīng)的hash值從預(yù)先構(gòu)建的緩存數(shù)據(jù)庫中查詢請求的數(shù)據(jù),如果查詢到請求的數(shù)據(jù),則返回給客戶,如果未查詢到請求的數(shù)據(jù),則調(diào)用關(guān)系型數(shù)據(jù)庫,從關(guān)系型數(shù)據(jù)庫中獲取請求的數(shù)據(jù),并將此請求的數(shù)據(jù)重新寫入緩存數(shù)據(jù)庫,
6、所述緩存數(shù)據(jù)庫中的數(shù)據(jù)設(shè)置有隨機(jī)失效時間,在該隨機(jī)失效時間內(nèi)未被訪問則該數(shù)據(jù)從緩存數(shù)據(jù)庫中刪除,在該隨機(jī)失效時間內(nèi)被訪問則重新設(shè)置該數(shù)據(jù)的隨機(jī)失效時間;
7、若在布隆過濾器中未查詢到所述對應(yīng)的hash值,則返還數(shù)據(jù)不存在。
8、進(jìn)一步地,所述緩存數(shù)據(jù)庫的構(gòu)建,包括:
9、采集客戶端上行的海量數(shù)據(jù),對所述海量數(shù)據(jù)進(jìn)行清洗、整理后獲取需要的有價值的數(shù)據(jù),存入關(guān)系型數(shù)據(jù)庫,所述需要的有價值的數(shù)據(jù)為預(yù)設(shè)的滿足目標(biāo)需求的數(shù)據(jù);
10、將所述需要的有價值的數(shù)據(jù)的key值寫入緩存數(shù)據(jù)庫,并在布隆過濾器中增加該數(shù)據(jù)的hash值,同時給每條數(shù)據(jù)設(shè)置隨機(jī)失效時間,完成緩存數(shù)據(jù)庫的構(gòu)建。
11、進(jìn)一步地,還包括:接收到對關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改的請求時激活分布鎖機(jī)制,所述分布鎖機(jī)制用于限制同一時間只能有一個請求對該條數(shù)據(jù)做修改,修改完關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)后,同步修改緩存數(shù)據(jù)庫中該條數(shù)據(jù)。
12、進(jìn)一步地,還包括:建立緩存數(shù)據(jù)庫集群,所述緩存數(shù)據(jù)庫集群包括多個緩存數(shù)據(jù)庫;
13、所述多個緩存數(shù)據(jù)庫為一寫多讀關(guān)系,多個緩存數(shù)據(jù)庫之間通過心跳包機(jī)制進(jìn)行緩存服務(wù),在檢測到當(dāng)前提供服務(wù)的緩存數(shù)據(jù)庫出現(xiàn)異常時,通過心跳包機(jī)制自動切換到另一個緩存數(shù)據(jù)庫進(jìn)行緩存服務(wù)。
14、進(jìn)一步地,還包括:自救求生機(jī)制,所述自救求生機(jī)制,用于在檢測到預(yù)設(shè)時間內(nèi)客戶訪問請求達(dá)到預(yù)設(shè)峰值時,根據(jù)預(yù)先設(shè)置的數(shù)據(jù)優(yōu)先級從低到高屏蔽或降頻相應(yīng)數(shù)據(jù)的業(yè)務(wù)。
15、第二方面,本發(fā)明還公開了一種實(shí)現(xiàn)海量數(shù)據(jù)訪問的裝置,包括:
16、獲取模塊,用于獲取客戶訪問請求,根據(jù)客戶訪問請求在布隆過濾器中查詢請求的數(shù)據(jù)對應(yīng)的hash值;
17、處理模塊,用于:若在布隆過濾器中查詢到所述對應(yīng)的hash值,則根據(jù)所述對應(yīng)的hash值從預(yù)先構(gòu)建的緩存數(shù)據(jù)庫中查詢請求的數(shù)據(jù),如果查詢到請求的數(shù)據(jù),則返回給客戶,如果未查詢到請求的數(shù)據(jù),則調(diào)用關(guān)系型數(shù)據(jù)庫,從關(guān)系型數(shù)據(jù)庫中獲取請求的數(shù)據(jù),并將此請求的數(shù)據(jù)重新寫入緩存數(shù)據(jù)庫;所述緩存數(shù)據(jù)庫中的數(shù)據(jù)設(shè)置有隨機(jī)失效時間,在該隨機(jī)失效時間內(nèi)未被訪問則該數(shù)據(jù)從緩存數(shù)據(jù)庫中刪除,在該隨機(jī)失效時間內(nèi)被訪問則重新設(shè)置該數(shù)據(jù)的隨機(jī)失效時間;
18、若在布隆過濾器中未查詢到所述對應(yīng)的hash值,則返還數(shù)據(jù)不存在。
19、第三方面,本發(fā)明還公開了一種存儲一個或多個程序的計(jì)算機(jī)可讀存儲介質(zhì),所述一個或多個程序包括指令,所述指令當(dāng)由計(jì)算設(shè)備執(zhí)行時,使得所述計(jì)算設(shè)備執(zhí)行第一方面的所述方法。
20、第四方面,本發(fā)明還公開了一種計(jì)算機(jī)設(shè)備,包括,
21、一個或多個處理器、存儲器以及一個或多個程序,其中一個或多個程序存儲在所述存儲器中并被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個程序包括用于執(zhí)行第一方面的所述方法的指令。
22、本發(fā)明所達(dá)到的有益效果:
23、本發(fā)明基于布隆過濾器、緩存數(shù)據(jù)庫,能夠減輕關(guān)系型數(shù)據(jù)庫的壓力,在面對海量數(shù)據(jù)的高并發(fā)及處理中保障了系統(tǒng)運(yùn)行的穩(wěn)定性。
1.一種實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法,其特征在于,所述緩存數(shù)據(jù)庫的構(gòu)建,包括:
3.根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法,其特征在于,還包括:接收到對關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改的請求時激活分布鎖機(jī)制,所述分布鎖機(jī)制用于限制同一時間只能有一個請求對該條數(shù)據(jù)做修改,修改完關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)后,同步修改緩存數(shù)據(jù)庫中該條數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法,其特征在于,還包括:建立緩存數(shù)據(jù)庫集群,所述緩存數(shù)據(jù)庫集群包括多個緩存數(shù)據(jù)庫;
5.根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)海量數(shù)據(jù)訪問的方法,其特征在于,還包括:自救求生機(jī)制,所述自救求生機(jī)制,用于在檢測到預(yù)設(shè)時間內(nèi)客戶訪問請求達(dá)到預(yù)設(shè)峰值時,根據(jù)預(yù)先設(shè)置的數(shù)據(jù)優(yōu)先級從低到高屏蔽或降頻相應(yīng)數(shù)據(jù)的業(yè)務(wù)。
6.一種實(shí)現(xiàn)海量數(shù)據(jù)訪問的裝置,其特征在于,包括:
7.一種存儲一個或多個程序的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述一個或多個程序包括指令,所述指令當(dāng)由計(jì)算設(shè)備執(zhí)行時,使得所述計(jì)算設(shè)備執(zhí)行權(quán)利要求1至5中的任一所述方法。
8.一種計(jì)算機(jī)設(shè)備,其特征在于,包括,