Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# 缓存

作者:╭ァ你不懂的悲殇   发布日期:2025-11-10   浏览:62

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 和 MemoryCacheMemoryCache.Default 是 .NET 提供的一个内存缓存实现,它允许我们将数据存储在内存中,并根据需要设置缓存项的过期策略。

  • GetData 方法:该方法尝试从缓存中获取指定键的数据。如果找不到,则调用 GenerateData 方法生成新数据,并将其添加到缓存中,同时设置缓存项的过期时间(例如 10 分钟后过期)。

  • CacheItemPolicy:用于定义缓存项的行为,比如绝对过期时间和优先级等。

  • GenerateData 方法:模拟生成数据的过程,实际应用中可以替换为从数据库或其他来源获取数据的逻辑。

  • Main 方法:演示了如何使用 CacheExample 类来获取和缓存数据。第一次调用 GetData 会生成数据并将其添加到缓存中,第二次调用时将直接从缓存中获取数据。

上一篇:c# 循环

下一篇:c#排序

大家都在看

c# 二进制

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站