在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
快取是軟體開發中用於提高性能的基本技術,通過將經常訪問的數據存儲在記憶體或更快的存儲介質中。在C#中, LazyCache 是一個流行的庫,簡化了線程安全緩存實現,讓開發人員更容易在其應用程式中有效地利用緩存,適用於高負載場景。
什麼是 LazyCache?
LazyCache 是一個針對 .NET/ASP.NET Core 應用程式的底層緩存提供庫,提供了一個簡單直觀的緩存資料 API。它以 NuGet 包的形式提供,可以輕鬆整合到 C# 專案中。LazyCache 的主要目標是簡化緩存實現,並減少使用雙重鎖緩存模式管理緩存資訊所需的樣板代碼。
LazyCache 的主要特點:
簡單的 API: LazyCache 提供了一個簡單明確的 API,用於添加、檢索和移除緩存項目。開發人員可以快速將緩存整合到其應用程式或網頁服務調用中,而無需處理複雜的緩存機制。
自動過期: LazyCache 支援基於可配置過期策略的緩存項目自動過期。開發人員可以指定緩存項目的過期時間,LazyCache 會自動從緩存資料中移除過期項目。
內存緩存: LazyCache 默認將緩存項目存儲在內存中,適用於需要快速訪問緩存資料的場景。內存緩存確保緩存資料訪問的低延遲和高吞吐量。
線程安全操作: LazyCache 提供線程安全的操作,用於添加、檢索和移除緩存項目。這確保多個線程可以同時訪問緩存而不會有數據損壞或不一致的風險。
如何在 C# 中使用 LazyCache:
由於其直觀的 API,在 C# 中使用 LazyCache 非常簡單。以下是一個基本示例,演示如何使用 LazyCache 緩存方法調用的結果:
using LazyCache;
public class DataService
{
// private readonly IAppCache cache
private readonly IAppCache _cache;
public DataService(IAppCache cache)
{
_cache = cache;
}
public string GetData()
{
return _cache.GetOrAdd("dataKey", () =>
{
// Simulate expensive operation such as database calls
return FetchDataFromDatabase();
});
}
private string FetchDataFromDatabase()
{
// Simulate fetching data from a database
return "Cached Data";
}
}
using LazyCache;
public class DataService
{
// private readonly IAppCache cache
private readonly IAppCache _cache;
public DataService(IAppCache cache)
{
_cache = cache;
}
public string GetData()
{
return _cache.GetOrAdd("dataKey", () =>
{
// Simulate expensive operation such as database calls
return FetchDataFromDatabase();
});
}
private string FetchDataFromDatabase()
{
// Simulate fetching data from a database
return "Cached Data";
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
在此範例中,DataService 類別使用 LazyCache 來快取 GetData 的結果。() 方法。GetOrAdd() 方法擷取與指定鍵相關的快取資料 ("資料鍵") 如果存在。如果資料沒有快取,提供的委派 (從資料庫中提取數據()) 執行以獲取數據,然後將其緩存以供將來使用。
IronPDF 是一個強大的C# PDF庫,允許在.NET專案中生成、編輯和提取PDF文件內容。以下是一些主要功能:
HTML到PDF轉換:
圖像和內容轉換:
編輯和操作:
跨平台支援:
(8, 7, 6, 5, 和 3.1+).NET Standard (2.0+),和 .NET Framework (4.6.2+).
首先,使用 Visual Studio 創建如下的控制台應用程序。
提供專案名稱。
提供 .NET 版本。
安裝IronPDF套件。
安裝 LazyCache 套件以添加快取方法調用。
using LazyCache;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeSample
{
internal class LazyCacheDemo
{
public static void Execute()
{
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
var content = "<h1>Demo LazyCache and IronPDF</h1>";
content += "<h2>Create CachingService</h2>";
// Create the cache service using caching logic
IAppCache cache = new CachingService();
content += "<p>IAppCache cache = new CachingService();</p>";
var cacheKey = "uniqueKey";
content += "<p>string cachedValue = cache.GetOrAdd(cacheKey, expensiveMethod);</p>";
// Define a factory method to generate the cacheable data
Func<string> expensiveLongRunMethod = () => {
var pdf = renderer.RenderHtmlAsPdf(content);
// Export to a file or Stream
pdf.SaveAs("AwesomeLazyCacheAndIronPdf.pdf");
return content;
};
// Get the cached value or add it if it doesn't exist
string cachedValue = cache.GetOrAdd(cacheKey, expensiveLongRunMethod);
Console.WriteLine(cachedValue);
}
}
}
using LazyCache;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeSample
{
internal class LazyCacheDemo
{
public static void Execute()
{
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
var content = "<h1>Demo LazyCache and IronPDF</h1>";
content += "<h2>Create CachingService</h2>";
// Create the cache service using caching logic
IAppCache cache = new CachingService();
content += "<p>IAppCache cache = new CachingService();</p>";
var cacheKey = "uniqueKey";
content += "<p>string cachedValue = cache.GetOrAdd(cacheKey, expensiveMethod);</p>";
// Define a factory method to generate the cacheable data
Func<string> expensiveLongRunMethod = () => {
var pdf = renderer.RenderHtmlAsPdf(content);
// Export to a file or Stream
pdf.SaveAs("AwesomeLazyCacheAndIronPdf.pdf");
return content;
};
// Get the cached value or add it if it doesn't exist
string cachedValue = cache.GetOrAdd(cacheKey, expensiveLongRunMethod);
Console.WriteLine(cachedValue);
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
獲取或添加至快取: 調用服務的 GetOrAdd 方法以檢索與 cacheKey 相關聯的快取值。如果快取中不存在該值,則會調用 expensiveLongRunMethod 來計算它,將其存儲在快取中,並返回它。如果該值已經在快取中,則直接返回。
IronPDF 套件需要授權才能執行並生成 PDF。請在應用程式開始時,在訪問套件之前加入以下代碼。
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
試用許可證可用 這裡.
LazyCache 透過提供簡單的 API 和自動到期的快取項目,簡化了 C# 應用程序中的快取實現。通過將 LazyCache 整合到您的專案中,您可以通過高效地快取經常訪問的數據來提升性能,降低延遲並優化資源利用率,方法是以原子且整潔的方式進行。無論您是在構建 Web 應用程序、API 還是服務,LazyCache 都可以成為一個提升 C# 應用程序性能和可擴展性的有價值工具。
另一方面,IronPDF 作為一個強大且多功能的 C# 庫,專門用於在 .NET 應用程序中處理 PDF 文檔。其強大的功能包括創建、編輯 HTML 轉換為 PDF 和以編程方式操作 PDF。通過加密和數字簽名等安全文檔處理功能,IronPDF 賦予開發者有效管理和自定義 PDF 工作流程的能力,使其成為 C# 開發過程中進行各種文檔管理和生成任務的有價值工具。