本發(fā)明涉及信息應(yīng)用,具體為一種基于redis的文件管理方法與裝置。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的快速發(fā)展,分布式系統(tǒng)的需求越來越多,而在分布式系統(tǒng)中,有時候必不可免地需要在各個子系統(tǒng)直接互相共享一些文件,以便協(xié)同合作,但各個子系統(tǒng)都有自己的內(nèi)存和處理能力,如何在各個系統(tǒng)之間做好文件傳輸是一個難點。
2、傳統(tǒng)的文件管理方法,如ftp、smb等,在分布式系統(tǒng)架構(gòu)下會出現(xiàn)性能瓶頸、可擴展性差等問題,而單獨打造一個分布式文件系統(tǒng)來管理文件,需要多臺服務(wù)器,以滿足文件的可靠性與可用性,這對于一些規(guī)模較小的分布式系統(tǒng)來說過于重量級了。
3、鑒于此,本發(fā)明提出一種基于redis的文件管理方法與裝置。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于redis的文件管理方法與裝置,實現(xiàn)分布式系統(tǒng)下的文件管理方法,保障文件的一致性、可靠性、可擴展性。
2、為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
3、第一方面,本發(fā)明提供一種基于redis的文件管理裝置,分布式系統(tǒng)包括多個子系統(tǒng)和redis數(shù)據(jù)庫,所述redis數(shù)據(jù)庫包括第一模塊、第二模塊和第三模塊;
4、第一模塊,子系統(tǒng)上傳文件并切片存儲到redis數(shù)據(jù)庫,發(fā)布文件信息到頻道;
5、第二模塊,子系統(tǒng)訂閱頻道接收文件信息,更新本地文件索引表,文件信息包含文件名、文件塊數(shù)、文件大小和文件md5碼;
6、第三模塊,子系統(tǒng)根據(jù)文件索引表索取文件塊,整合并校驗文件完整性。
7、作為本發(fā)明第一方面一種優(yōu)選技術(shù)方案,所述第一模塊包括文件上傳單元與頻道發(fā)布單元;
8、文件上傳單元,各子系統(tǒng)各自進行文件上傳操作,保存到redis數(shù)據(jù)庫中,
9、頻道發(fā)布單元,各子系統(tǒng)在文件上傳完后,在自己的頻道中發(fā)布文件信息。
10、作為本發(fā)明第一方面一種優(yōu)選技術(shù)方案,文件上傳操作時,對文件進行文件切片處理確定文件字節(jié),以文件名和文件索引號為主鍵,以文件字節(jié)流為值。
11、作為本發(fā)明第一方面一種優(yōu)選技術(shù)方案,文件名和文件塊數(shù),可作為主鍵查找文件內(nèi)容;文件大小和文件md5碼,用于訂閱方校驗文件是否正確。
12、作為本發(fā)明第一方面一種優(yōu)選技術(shù)方案,所述第二模塊包括消息訂閱單元與索引維護單元;
13、消息訂閱單元,各子系統(tǒng)根據(jù)自身業(yè)務(wù)需要,去訂閱對應(yīng)子系統(tǒng)頻道,子系統(tǒng)頻道個數(shù)包括但不限于一個;對應(yīng)子系統(tǒng)頻道中發(fā)布新的文件信息后,在第一時間進行文件索引表維護工作;
14、索引維護單元,解析獲取新的文件信息,將文件信息保存到自己的文件索引表中。
15、作為本發(fā)明第一方面一種優(yōu)選技術(shù)方案,所述第三模塊包括文件索取單元與文件校驗單元;
16、文件索取單元,各子系統(tǒng)在使用到對應(yīng)文件的時候,檢索自己的文件索引表;
17、文件校驗單元,計算完整文件的大小與文件的文件md5碼,并與文件索引表中記錄的值相比較,若不一致,則認(rèn)為文件索取失敗,校驗文件索取單元中記錄的塊號與塊大小,對比發(fā)現(xiàn)問題塊,并重新索??;若一致,則完成整個文件傳輸流程。
18、作為本發(fā)明第一方面一種優(yōu)選技術(shù)方案,所述完整文件的獲取邏輯:
19、根據(jù)文件索引表里的內(nèi)容,按文件名+文件序號為主鍵,依次從數(shù)據(jù)庫中獲取文件塊,每索取一塊,記錄塊號與塊大小,最后在系統(tǒng)中完成文件塊的整合,形成完整文件。
20、第二方面,本發(fā)明提供一種基于redis的文件管理方法,基于第一方面的實現(xiàn),包括以下步驟:
21、文件發(fā)布,子系統(tǒng)上傳文件并切片存儲到redis數(shù)據(jù)庫,發(fā)布文件信息到頻道;
22、消息訂閱與索引維護,子系統(tǒng)訂閱頻道接收文件信息,更新本地文件索引表;
23、文件索取與校驗,子系統(tǒng)根據(jù)文件索引表索取文件塊,整合并校驗文件完整性。
24、第三方面,本發(fā)明提供一種電子設(shè)備包括:包括:處理器和存儲器,其中,所述存儲器中存儲有可供處理器調(diào)用的計算機程序;
25、所述處理器通過調(diào)用所述存儲器中存儲的計算機程序,執(zhí)行第一方面。
26、第四方面,本發(fā)明提供一種計算機可讀存儲介質(zhì),儲存有指令,當(dāng)所述指令在計算機上運行時,使得計算機執(zhí)行第一方面。
27、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
28、本發(fā)明以redis數(shù)據(jù)庫的發(fā)布訂閱機制為核心,無需新增服務(wù)節(jié)點,減少了資源的使用,是一種輕量級的文件管理方式,保障分布式架構(gòu)下各子系統(tǒng)的文件一致性,并以redis數(shù)據(jù)庫緩存文件塊,允許多個系統(tǒng)同時進行多個文件索取與上傳,保障了文件傳輸?shù)男?,解決文件獨占問題。
1.一種基于redis的文件管理裝置,其特征在于:分布式系統(tǒng)包括多個子系統(tǒng)和redis數(shù)據(jù)庫,所述redis數(shù)據(jù)庫包括第一模塊、第二模塊和第三模塊;
2.根據(jù)權(quán)利要求1所述的一種基于redis的文件管理裝置,其特征在于:所述第一模塊包括文件上傳單元與頻道發(fā)布單元;
3.根據(jù)權(quán)利要求2所述的一種基于redis的文件管理裝置,其特征在于:文件上傳操作時,對文件進行文件切片處理確定文件字節(jié),以文件名和文件索引號為主鍵,以文件字節(jié)流為值。
4.根據(jù)權(quán)利要求1所述的一種基于redis的文件管理裝置,其特征在于:文件名和文件塊數(shù),可作為主鍵查找文件內(nèi)容;文件大小和文件md5碼,用于訂閱方校驗文件是否正確。
5.根據(jù)權(quán)利要求1所述的一種基于redis的文件管理裝置,其特征在于:所述第二模塊包括消息訂閱單元與索引維護單元;
6.根據(jù)權(quán)利要求1所述的一種基于redis的文件管理裝置,其特征在于:所述第三模塊包括文件索取單元與文件校驗單元;
7.根據(jù)權(quán)利要求1所述的一種基于redis的文件管理裝置,其特征在于:所述完整文件的獲取邏輯:
8.一種基于redis的文件管理方法,基于權(quán)利要求1-7任一項所述的一種基于redis的文件管理裝置的實現(xiàn),其特征在于:包括以下步驟:
9.一種電子設(shè)備包括:包括:處理器和存儲器,其中,所述存儲器中存儲有可供處理器調(diào)用的計算機程序;
10.一種計算機可讀存儲介質(zhì),儲存有指令,當(dāng)所述指令在計算機上運行時,使得計算機執(zhí)行上述權(quán)利要求1-7任一項所述的一種基于redis的文件管理裝置。