zoukankan      html  css  js  c++  java
  • ASP.NET Core 中使用 Redis 实现分布式缓存:Docker、IDistributedCache、StackExchangeRedis

    安装和配置docker (略)。。。。。。。。。。。

    ASP.NET Core 使用分布式缓存

    ASP.NET Core 中,支持使用多种数据库进行缓存,ASP.NET Core 提供了统一的接口给开发者使用。

    IDistributedCache

    ASP.NET Core 中,使用 IDistributedCache 为开发者提供统一的缓存使用接口,而不必关注使用的是何种数据库。

    IDistributedCache]接口提供了以下方法操作的分布式的缓存实现中的项:

    • GetAsync –接受字符串键和检索缓存的项作为byte[]数组如果在缓存中找到。
    • SetAsync –中添加项 (作为byte[]数组) 到使用字符串键的缓存。
    • RefreshAsync –刷新缓存基于其密钥,重置其滑动到期超时值 (如果有) 中的项。
    • RemoveAsync –移除缓存项根据其字符串键值。

    IDistributedCache 提供的常用方法如下:

    方法说明
    Get(String) 获取Key(键)的值
    GetAsync(String, CancellationToken) 异步获取键的值
    Refresh(String) 刷新缓存
    RefreshAsync(String, CancellationToken) Refreshes a value in the cache based on its key, resetting its sliding expiration timeout (if any).
    Remove(String) 移除某个值
    RemoveAsync(String, CancellationToken) Removes the value with the given key.
    [Set(String, Byte], DistributedCacheEntryOptions) Sets a value with the given key.
    [SetAsync(String, Byte], DistributedCacheEntryOptions, CancellationToken) Sets the value with the given key.

    官方文档很详细https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.extensions.caching.distributed.idistributedcache?view=aspnetcore-2.2

     

    ASP.NET Core中配置缓存

    新建一个 ASP.NET Core WebApi 项目

    Nuget 管理器安装

    Microsoft.Extensions.Caching.StackExchangeRedis
    

    ConfigureServices 中使用服务

    services.AddDistributedMemoryCache();
    

    //配置 Redis 服务器

                services.AddStackExchangeRedisCache(options =>
                {
                    options.Configuration = "localhost:6379";
                    options.InstanceName = "mvc";
                });
    

    InstanceName 是你自定义的实例名称,创建缓存时会以此名称开头。

    这样就配置好了。

    使用缓存

    注入缓存服务

            private readonly IDistributedCache _cache;
            public ValuesController(IDistributedCache cache)
            {
                _cache = cache;
            }
    

    //设置缓存和使用缓存:

    _cache.SetString ("key1", "555555");

    var s= _cache.GetAsync("key1");


    代码如:
            [HttpGet("Set")]
            public async Task<JsonResult> SetCache(string setkey, string setvalue)
            {
    
                string key = "key1";
                if (!string.IsNullOrEmpty(setkey))
                    key = setkey;
                string value = DateTime.Now.ToLongTimeString();
                if (!string.IsNullOrEmpty(setvalue))
                    value = setvalue;
                await _cache.SetStringAsync(key, value);
                return new JsonResult(new { Code = 200, Message = "设置缓存成功", Data = "key=" + key + "    value=" + value });
            }
    
  • 相关阅读:
    loaded some nib but the view outlet was not set
    指标评比
    IOS DEVELOP FOR DUMMIES
    软件测试题二
    javascript select
    DOM节点类型详解
    mysql操作
    UVA 10055
    solutions for 'No Suitable Driver Found For Jdbc'
    解决git中文乱码问题
  • 原文地址:https://www.cnblogs.com/wgscd/p/13043040.html
Copyright © 2011-2022 走看看