本申請涉及計算機,尤其涉及一種數據庫訪問方法及裝置。
背景技術:
1、redis(remote?dictionary?server,遠程字典服務)是一款低延遲、高可用的nosql(not?only?sql,非關系型的數據庫)數據庫,因其使用簡單、性能高、生態成熟等特點被眾多企業開發者以及云廠商廣泛采用。redis核心只有一個線程處理數據計算,面對大量連接和請求,以及使用tls(transport?layer?security,傳輸層安全性協議)加密傳輸的時候,會出現明顯性能下降的問題,如何提高redis處理并發訪問的效率,是目前急需解決的問題。
技術實現思路
1、本申請示出了一種數據庫訪問方法及裝置。
2、第一方面,本申請示出了一種數據庫訪問方法,所述方法包括:
3、接收多個終端發送的并發數據庫訪問請求;
4、將所述多個終端發送的并發數據庫訪問請求進行合并,生成合并后的訪問請求;
5、根據所述合并后的訪問請求,對數據庫進行訪問。
6、可選地,所述接收多個終端發送的并發數據庫訪問請求,包括:
7、采用異步方式的單線程模型,接收多個終端發送的并發數據庫訪問請求。
8、可選地,所述將所述多個終端發送的并發數據庫訪問請求進行合并,生成合并后的訪問請求,包括:
9、根據redis協議,對所述數據庫訪問請求進行解析,得到與所述數據庫訪問請求的數據類型;
10、根據所述數據類型,將所述數據庫訪問請求存放在對應的數據列表中,其中,所述數據列表至少包括請求列表和發送列表;
11、對每一個數據列表中的數據庫訪問請求進行合并,生成合并后的訪問請求。
12、可選地,所述根據所述合并后的訪問請求,對數據庫進行訪問,包括:
13、在工作線程循環處理所述數據列表中的數據庫訪問請求完成后,判斷是否有寫入任務或讀取任務;
14、在沒有寫入任務或讀取任務的情況下,將所述數據列表中的數據庫訪問請求一次性寫入輸入輸出接口中。
15、可選地,所述方法還包括:
16、將所述每一個數據庫訪問請求分配至數據庫不同的節點。
17、第二方面,本申請示出了一種數據庫訪問裝置,所述裝置包括:
18、接收模塊,用于接收多個終端發送的并發數據庫訪問請求;
19、合并模塊,用于將所述多個終端發送的并發數據庫訪問請求進行合并,生成合并后的訪問請求;
20、訪問模塊,用于根據所述合并后的訪問請求,對數據庫進行訪問。
21、可選地,所述接收模塊,用于:
22、采用異步方式的單線程模型,接收多個終端發送的并發數據庫訪問請求。
23、可選地,所述合并模塊,用于:
24、根據redis協議,對所述數據庫訪問請求進行解析,得到與所述數據庫訪問請求的數據類型;
25、根據所述數據類型,將所述數據庫訪問請求存放在對應的數據列表中,其中,所述數據列表至少包括請求列表和發送列表;
26、對每一個數據列表中的數據庫訪問請求進行合并,生成合并后的訪問請求。
27、可選地,所述訪問模塊用于:
28、在工作線程循環處理所述數據列表中的數據庫訪問請求完成后,判斷是否有寫入任務或讀取任務;
29、在沒有寫入任務或讀取任務的情況下,將所述數據列表中的數據庫訪問請求一次性寫入輸入輸出接口中。
30、可選地,所述訪問模塊用于:
31、將所述每一個數據庫訪問請求分配至數據庫不同的節點。第三方面,本申請示出了一種電子設備,所述電子設備包括:處理器;用于存儲處理器可執行指令的存儲器;其中,所述處理器被配置為執行如上述任一方面所述的方法。
32、第四方面,本申請示出了一種非臨時性計算機可讀存儲介質,當所述存儲介質中的指令由電子設備的處理器執行時,使得電子設備能夠執行如上述任一方面所述的方法。
33、第五方面,本申請示出了一種計算機程序產品,當所述計算機程序產品中的指令由電子設備的處理器執行時,使得電子設備能夠執行如上述任一方面所述的方法。
34、本申請提供的技術方案可以包括以下有益效果:本申請實施例提供一種數據庫訪問方法,包括接收多個終端發送的并發數據庫訪問請求;將所述多個終端發送的并發數據庫訪問請求進行合并,生成合并后的訪問請求;根據所述合并后的訪問請求,對數據庫進行訪問,在redis服務前引入一個網絡協議層面的代理進程,采取異步的線程模型、連接池、多個redis請求合并成一個pineline流水線的批量請求等方式,提高了redis處理并發訪問的效率,在完全兼容redis生態的前提下,讓redis的服務性能在特定場景性能可以提升1倍以上,解決了redis的一些明顯的性能瓶頸問題,拓寬了redis的使用場景和產品價值。
1.一種數據庫訪問方法,其特征在于,所述方法包括:
2.根據權利要求1所述的數據庫訪問方法,其特征在于,所述接收多個終端發送的并發數據庫訪問請求,包括:
3.根據權利要求1所述的數據庫訪問方法,其特征在于,所述將所述多個終端發送的并發數據庫訪問請求進行合并,生成合并后的訪問請求,包括:
4.根據權利要求3所述的數據庫訪問方法,其特征在于,所述根據所述合并后的訪問請求,對數據庫進行訪問,包括:
5.根據權利要求2所述的數據庫訪問方法,其特征在于,所述方法還包括:
6.一種數據庫訪問裝置,其特征在于,所述裝置包括:
7.根據權利要求6所述的數據庫訪問裝置,其特征在于,所述接收模塊,用于:
8.根據權利要求6所述的數據庫訪問裝置,其特征在于,所述合并模塊,用于:
9.一種電子設備,其特征在于,包括:處理器、存儲器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述計算機程序被所述處理器執行時實現如權利要求1至6中任一項所述的方法。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如權利要求1至6中任一項所述的方法。