MemoryCacheHelper与RedisCacheHelper缓存集成与测试笔记

因为每次在新项目中需要花费大量时间在基础类库搬移、调试。为了节省时间(偷懒)就将MemoryCacheHelper/RedisHelper进行了封装

本次是关于缓存方面记录,源码请参考(包含RedisHelper与MemoryCacheHelper):https://github.com/billowliu2/Bill.Cache

一、使用方式

安装Nuget包之前需要创建config文件夹

 

 

1、依赖注入使用方式(Nuget安装Bill.CacheIntegration、Microsoft.Extensions.DependencyInjection)

复制代码
using Bill.CacheAbstract;
using Bill.CacheIntegration;
using Microsoft.Extensions.DependencyInjection;
using System;

namespace Bill.CacheDITest
{
    class Program
    {
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");

            IServiceCollection services = new ServiceCollection();

            services.AddCache();

            IServiceProvider serviceProvider = services.BuildServiceProvider();

            //根据配置config/Cache.json文件中的枚举Model选项自动选择(默认Redis)
            var Cache = serviceProvider.GetService<ICacheHandler>();

            Cache.Set("b", "v");

            var value = Cache.Get("b");

            Console.WriteLine(value);


        }
    }
}
View Code
复制代码

2、普通引用方式(Nuget安装Bill.CommonCache)

复制代码
using System;
using Bill.CommonCache.Helper;
using Bill.CommonCache;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Options;

namespace Bill.CacheTest
{
    class Program
    {
        static void Main(string[] args)
        {

            //Config
            {
                //var options = new JsonConfigurationHelper().Get<CacheOptions>("Cache", "", true);
                //if (options == null)
                //    Console.WriteLine("配置文件错误");
            }
            //MemeoryCache
            {
                IMemoryCache memory = new MemoryCache(Options.Create(new MemoryCacheOptions()));
                ICacheHandler MemoryCahce = new MemoryCacheHandler(memory);
                MemoryCahce.Set("a", "测试内存缓存");
                MemoryCahce.Get("a");
                Console.WriteLine(MemoryCahce.Get("a"));
            }
            //RedisCache
            {
                var Redis = new RedisCacheHelper();
                ICacheHandler RedisCache = new RedisCacheHandler(Redis);
                RedisCache.Set("b","测试Redis缓存");
                RedisCache.Get("b");
                Console.WriteLine(RedisCache.Get("b"));
            }


        }
    }
}
View Code
复制代码

需要注意的是安装Nuget完成后会自定生成Cache.Json文件在config文件夹中需要进行如下修改(否则会报错)

 测试结果:

 

 

 二、Nuget源码~

 请参考:https://github.com/billowliu2/Bill.Cache

 Bill.CommonCache主要在不使用IoC模式时使用(普通引用)

 Bill.CacheIntegration主要基于官方提供的Microsoft.Extensions.DependencyInjection中注册使用(依赖注入)

 

仅仅个人记录参考,不喜勿喷~

   

   

 

 

posted @   刘涛(Bill)  阅读(733)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示