This commit is contained in:
42
docs/snippets/csharp/cache/disk_cache.cs
vendored
Normal file
42
docs/snippets/csharp/cache/disk_cache.cs
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
```csharp title="disk_cache.cs"
|
||||
using Kreuzberg;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
var config = new ExtractionConfig
|
||||
{
|
||||
UseCache = true,
|
||||
CacheConfig = new CacheConfig
|
||||
{
|
||||
CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "kreuzberg_cache"),
|
||||
MaxCacheSize = 1024 * 1024 * 500,
|
||||
CacheTtlSeconds = 86400 * 7,
|
||||
EnableCompression = true
|
||||
}
|
||||
};
|
||||
|
||||
Console.WriteLine("First extraction (will be cached)...");
|
||||
var result1 = await KreuzbergLib.ExtractFileAsync("document.pdf", config);
|
||||
Console.WriteLine($" - Content length: {result1.Content.Length}");
|
||||
Console.WriteLine($" - Cached: {result1.Metadata.WasCached}");
|
||||
|
||||
Console.WriteLine("\nSecond extraction (from cache)...");
|
||||
var result2 = await KreuzbergLib.ExtractFileAsync("document.pdf", config);
|
||||
Console.WriteLine($" - Content length: {result2.Content.Length}");
|
||||
Console.WriteLine($" - Cached: {result2.Metadata.WasCached}");
|
||||
|
||||
Console.WriteLine($"\nResults are identical: {result1.Content == result2.Content}");
|
||||
|
||||
await KreuzbergLib.ClearCacheAsync("document.pdf");
|
||||
Console.WriteLine("\nCache cleared for document.pdf");
|
||||
|
||||
await KreuzbergLib.ClearAllCacheAsync();
|
||||
Console.WriteLine("All cache cleared");
|
||||
|
||||
var cacheStats = await KreuzbergLib.GetCacheStatsAsync();
|
||||
Console.WriteLine($"\nCache Statistics:");
|
||||
Console.WriteLine($" - Total entries: {cacheStats.TotalEntries}");
|
||||
Console.WriteLine($" - Cache size: {cacheStats.CacheSizeBytes / 1024 / 1024} MB");
|
||||
Console.WriteLine($" - Hit rate: {cacheStats.HitRate:P}");
|
||||
```
|
||||
Reference in New Issue
Block a user