System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術實施例涉及計算機,尤其涉及一種基于dotnet平臺的進程緩存管理方法。
技術介紹
1、目前在.net環境下,進程內緩存方案主要包括以下幾種:
2、1.memorycache:是.net?core中的一種輕量級內存緩存機制,適用于存儲短期有效的數據。它可以通過依賴注入的方式在asp.net?core應用中使用。
3、2.cachemanager:是一個開源的.net緩存抽象層,支持多種緩存提供程序,如memorycache、redis、memcached等,并提供緩存同步、并發更新、事件處理等高級功能。
4、3.easycaching:是一個開源緩存庫,提供了統一的抽象緩存接口,并支持多種緩存provider,如inmemory、redis、memcached等。
5、4.fusioncache:是一個.net框架,用于構建高效的緩存系統,支持內存緩存、分布式緩存等多種緩存策略。
6、5.microsoft.extensions.caching.memor:這是微軟官方提供的內存緩存實現,主要用于asp.net?core項目中。
7、6.system.runtime.caching:是.net?framework4.0中引入的命名空間,提供了一個簡單的緩存機制,適用于單機應用。
8、7.microsoft?caching:微軟官方提供的緩存庫,支持內存緩存和分布式緩存的實現,如sql?server和redis的分布式緩存。
9
10、基于redis等進程外緩存的問題:
11、2)有通訊開銷;
12、2)對象序列化和反序列化開銷;
13、3)可靠性,容易受網絡抖動等因素影響;
14、普通內存緩存的問題:
15、1)內存開銷:一般沒有有效控制內存容量,容易導致緩存系統占用過多的系統內存。
16、2)lru(least?recently?used,最近最少使用)算法缺點:lru算法容易受到短期冷數據的影響,可能導致熱點數據被過早淘汰。此外,周期性數據訪問問題也可能導致不必要的開銷。
17、3)lfu(least?frequently?used,頻率最低使用)算法缺點:lfu算法過于關注數據的累積訪問次數,可能導致某些“歷史熱門數據”被長期保留,即使它已經很長時間未被訪問。此外,頻率統計的實現和存儲邏輯也需要更多的計算資源,尤其是在頻繁訪問的高并發場景下,可能帶來性能開銷。
18、3)緩存失效策略單一:合理的緩存失效策略對于提高緩存命中率至關重要。可以設置合適的生存時間和活動過期策略,以確保緩存數據的新鮮度和相關性。只是一種策略始終不能完美解決所有問題。
技術實現思路
1、本專利技術實施例提供一種基于dotnet平臺的進程緩存管理方法,實現了一種輕量化的進程緩存管理方法,并能解決以上問題的至少之一。
2、第一方面,本專利技術實施例提供了一種基于dotnet平臺的進程緩存管理方法,包括:
3、為緩存中的各項數據分別增加最后訪問時間字段;
4、響應于數據查詢請求,將被查詢數據的最后訪問時間字段修改為當前時間;
5、響應于緩存數據新增請求,在緩存中插入新增數據,并在插入后緩存容量超出最大限制的情況下,對插入后的緩存進行分區遍歷,根據正在遍歷的數據的最后訪問時間字段和已經遍歷的數據總數,刪除部分數據;
6、其中,正在遍歷的分區被鎖定,其它分區能夠執行其它線程。
7、第二方面,本專利技術實施例提供了一種電子設備,所述電子設備包括:
8、一個或多個處理器;
9、存儲器,用于存儲一個或多個程序,
10、當所述一個或多個程序被所述一個或多個處理器執行,使得所述一個或多個處理器實現任一實施例所述的基于dotnet平臺的進程緩存管理方法。
11、綜上所述,本專利技術實施例提供一種基于dotnet平臺的進程緩存管理方法,在concurrentdictionary類代碼的基礎上進行改進,加入多區同步鎖控制、容量控制、動態刪除等策略方法,能夠有效控制緩存容量,并且提高緩存數據的命中率,實現了一種輕量化的進程緩存管理機制。具體的,該方法簡化了淘汰刪除元素的算法復雜度;淘汰刪除元素操作采用分區鎖操作,對高并發性影響非常有限;動態維護的數據盡量少,對查詢操作的性能影響盡可能少(相對于lru等算法);注重方法的輕量化和實用性,能保證80%以上的場景性能比lru算法更快;淘汰刪除元素操作采用異步操作方式,不影響增加元素操作的性能。
本文檔來自技高網...【技術保護點】
1.一種基于dotNet平臺的進程緩存管理方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,在所述為緩存中的各項數據分別增加最后訪問時間字段之前,還包括:
3.根據權利要求2所述的方法,其特征在于,所述響應于數據查詢請求,將被查詢數據的最后訪問時間字段修改為當前時間,包括:
4.根據權利要求1所述的方法,其特征在于,在所述在緩存中插入新增數據之前,還包括:
5.根據權利要求4所述的方法,其特征在于,所述根據各鍵值對,計算各數據在所述bulk數組中的存放位置,包括:
6.根據權利要求4所述的方法,其特征在于,還包括:
7.根據權利要求1所述的方法,其特征在于,基于ConcurrentDictionary類,各數據分別對應一個鍵值對,其中,各鍵值對的key用于存儲數據序號,value用于存儲數據;緩存中的各數據存儲于bulk數組,所述bulk數組中的各元素為一個鏈表,各鏈表中的各節點用于存儲一個鍵值對;
8.根據權利要求1所述的方法,其特征在于,在所述在插入后緩存容量超出最大限制的情
9.根據權利要求1所述的方法,其特征在于,所述對插入后的緩存進行分區遍歷,根據正在遍歷的數據的最后訪問時間字段和已經遍歷的數據總數,刪除部分數據,包括:
10.一種電子設備,其特征在于,包括:
...【技術特征摘要】
1.一種基于dotnet平臺的進程緩存管理方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,在所述為緩存中的各項數據分別增加最后訪問時間字段之前,還包括:
3.根據權利要求2所述的方法,其特征在于,所述響應于數據查詢請求,將被查詢數據的最后訪問時間字段修改為當前時間,包括:
4.根據權利要求1所述的方法,其特征在于,在所述在緩存中插入新增數據之前,還包括:
5.根據權利要求4所述的方法,其特征在于,所述根據各鍵值對,計算各數據在所述bulk數組中的存放位置,包括:
6.根據權利要求4所述的方法,其特征在于,還包括:
7.根據權利要求1...
【專利技術屬性】
技術研發人員:江利國,高會芳,吳妍冰,
申請(專利權)人:北京匯元網科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。