• 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 });
            }
    
  • 相关阅读:
    基于AVPlayer的音乐播放器
    java中关于正则一些基础使用
    随笔08.09
    我的Android笔记--我对安卓系统的一些了解
    2016/06/16
    Objective-C(iOS)严格单例模式正确实现
    Swift轻松入门——基本语法介绍和详细地Demo讲解(利用WebView打开百度、新浪等网页)
    GCD学习之dispatch_barrier_async
    iOS自学之NSOperation、NSOperationQueue、Background
    docker run mysql
  • 原文地址:https://www.cnblogs.com/wgscd/p/13043040.html
Copyright © 2020-2023  润新知