using System;
using System.Runtime.Caching;
public class CacheExample
{
private ObjectCache cache = MemoryCache.Default;
public string GetData(string key)
{
// 尝试从缓存中获取数据
var cachedData = cache[key] as string;
if (cachedData == null)
{
// 如果缓存中没有数据,则生成新数据并添加到缓存中
Console.WriteLine("缓存中没有找到数据,正在生成...");
cachedData = GenerateData(key);
// 设置缓存项的过期策略(例如:10分钟后过期)
CacheItemPolicy policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(10);
cache.Set(key, cachedData, policy);
}
else
{
Console.WriteLine("从缓存中获取数据");
}
return cachedData;
}
private string GenerateData(string key)
{
// 模拟生成数据的过程
return $"Generated data for {key}";
}
}
// 使用示例
public class Program
{
public static void Main()
{
CacheExample example = new CacheExample();
string data = example.GetData("exampleKey");
Console.WriteLine(data);
// 再次获取相同的键,应该从缓存中获取
string cachedData = example.GetData("exampleKey");
Console.WriteLine(cachedData);
}
}
ObjectCache 和 MemoryCache:MemoryCache.Default 是 .NET 提供的一个内存缓存实现,它允许我们将数据存储在内存中,并根据需要设置缓存项的过期策略。
GetData 方法:该方法尝试从缓存中获取指定键的数据。如果找不到,则调用 GenerateData 方法生成新数据,并将其添加到缓存中,同时设置缓存项的过期时间(例如 10 分钟后过期)。
CacheItemPolicy:用于定义缓存项的行为,比如绝对过期时间和优先级等。
GenerateData 方法:模拟生成数据的过程,实际应用中可以替换为从数据库或其他来源获取数据的逻辑。
Main 方法:演示了如何使用 CacheExample 类来获取和缓存数据。第一次调用 GetData 会生成数据并将其添加到缓存中,第二次调用时将直接从缓存中获取数据。
上一篇:c# 循环
下一篇:c#排序
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站