.net core 分布式缓存

本文深入解析IDistributedCache接口,展示了如何使用内存和Redis作为分布式缓存服务。通过具体示例,介绍了缓存项的获取、设置和移除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IDistributedCache接口

IDistributedCache表示分布式缓存接口,其接口如下:

public interface IDistributedCache
{
    // 获取键为key的缓存项
    byte[] Get(string key);
    Task<byte[]> GetAsync(string key, CancellationToken token = default);

    // 移除键为key的缓存项
    void Remove(string key);
	Task RemoveAsync(string key, CancellationToken token = default);

    // 设置键为key的缓存项
    void Set(string key, byte[] value, DistributedCacheEntryOptions options);
    Task SetAsync(string key, byte[] value, DistributedCacheEntryOptions options, CancellationToken token = default);
}

注册分布式缓存服务

内存分布式缓存

services.AddDistributedMemoryCache();

注:内存分布式缓存使用的是本地内存,但其确实现的分布式缓存的接口

Redis分布式缓存

services.AddStackExchangeRedisCache (options => {
    // 配置 Redis 连接字符串
    // 127.0.0.1:6379 为 Redis 服务地址,123456 为 Redis 连接密码
    options.Configuration = "127.0.0.1:6379,password=123456";
    // 随便起的实例名,我们在 Redis 服务器保存的 key 均以该实例名开头
    options.InstanceName = "SampleInstance";
});

示例

public class ValuesController : ControllerBase {
    private readonly IDistributedCache _cache;

    // 注入分布式缓存
    public ValuesController (IDistributedCache cache) {
        _cache = cache;
	}

    [HttpGet]
    public ActionResult<string> Get () {
        // 获取键为 mykey1 的缓存项
        string value = _cache.GetString ("mykey1");
        if (string.IsNullOrEmpty (value)) {
            // 设置键为 mykey1 的缓存项
            _cache.SetString ("mykey1", "abc");
            return "no value";
        }

        return value;
	}

    [HttpGet]
    public ActionResult Remove () {
        // 从缓存中移除键为mykey1的缓存项
        _cache.Remove ("mykey1");

        return Ok ();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值