在伺服器性能優化中,我們更多的是要考慮到緩存的使用,分享一個自己編寫的方法緩存的框架,使用非常方便。話不多說,先上使用例子: 1.定義要使用緩存的類及方法: 說明: 1.被緩存的方法必須使用虛方法 2.特性:CacheMethod.ExpirationSecond 指定緩存的相對失效時間(單位秒) ...
在伺服器性能優化中,我們更多的是要考慮到緩存的使用,分享一個自己編寫的方法緩存的框架,使用非常方便。話不多說,先上使用例子:
1.定義要使用緩存的類及方法:
public class Example { [CacheMethod(ExpirationSecond = 60*10)] public virtual int Fun2(int a, int b) { return a + b; } }
說明:
1.被緩存的方法必須使用虛方法
2.特性:CacheMethod.ExpirationSecond 指定緩存的相對失效時間(單位秒) 如果不知道該特性,緩存相對失效時間預設為60秒
2.創建緩存代理對象
Example example=MethodCacheFactory.GetMethodCacheProxyObject<Example>();
3.調用緩存方法
var ret=example.Fun2(1, 1);//第一次調用會將返回值放入緩存中 ret = example.Fun2(1, 1);//第二次調用,如果緩存沒有失效的話,會去緩存中拿到返回值,不會執行對應方法,如果緩存已經失效,那麼則會執行原方法。
擴展:
代碼中使用的是記憶體緩存,如果想使用分散式緩存如redis,請實現介面
並通過相關代碼替換預設緩存容器:
ICacheContainer cacheContainer = null;//請實例化對應容器 MethodCacheFactory.SetCacheContainer(cacheContainer);//替換緩存預設容器
完整項目及源碼:
https://gitee.com/qianqianhr/dotnet_method_cache.git