張審問 ,吳海燕 ,李 星 ,涂國慶
(1. 甘肅省水利廳信息中心,甘肅 蘭州 730000;2. 武漢大學網絡安全學院,湖北 武漢 430072)
當今萬物互聯和感知已是大勢所趨,在水務數據應用領域,水務云系統成為一種新型有效的水務感知數據綜合管理平臺。水務云系統是一個各類水務監測系統的數據與應用服務中心,它接收遠程監測數據并集中存儲到云端數據庫,并按照統一的用戶界面,提供監測和基本信息的展示、查詢、統計、管理功能。水務云管理的水利監測數據要素和種類繁多,主要涉及到水位、雨量、壓力、電壓、電量等文本數據,也包含現場圖片數據。
面臨著水務數據爆炸式增長,水務云系統如何應對海量數據的存儲和傳輸是一個較大的挑戰[1]。當大量的用戶同時訪問云服務器時,會對后臺數據庫造成巨大的訪問壓力。如何提升用戶對系統資源的訪問速度,改善系統的服務體驗,降低系統后臺數據庫的訪問壓力是當前水務云系統面臨的關鍵問題。
為實現水務云系統的高并發和高可用性,通常采用數據庫緩存技術。Redis 屬于一種基于緩存的內存數據庫,具有優秀的讀寫性能,可以應對數據庫高并發讀寫,適用于各種不同場景下的緩存和數據存儲需求[2]。緩存替換算法在很大程度上影響著水務云系統整體緩存性能的強弱。Web 緩存替換算法較多,代表算法有基于訪問時間間隔的 LRU 算法[3],基于訪問頻率的 LFU 算法[4]。GDS(Greedy Dual Size)緩存替換算法是根據 LRU 算法發展而來的,以價值函數為評價標準[5],缺陷在于:不能識別出只訪問過 1 次和頻繁被訪問的對象,有時會出現頻繁訪問的對象反而被替換掉的情況。……