ABP缓存示例

private readonly ICacheManager _cacheManager;

public ProgrammeManage(ICacheManager cacheManager)
{
    _cacheManager = cacheManager;
}

/// <summary>
/// 定时任务:更新缓存(仅查询今年的投票结果、按照节目顺序排序)
/// </summary>
/// <returns></returns>
public async Task SaveVoteResult()
{
    GetAllProgrammeInfosByYearOutput result = GetVoteResult(DateTime.Now.Year).Result;
    await _cacheManager.GetCache("GetAllProgrammeInfosByYearOutput")
        .SetAsync("GetAllProgrammeInfosByYearOutput", result);
}

/// <summary>
/// 查询缓存
/// </summary>
/// <param name="inputYear"></param>
/// <param name="sortProperty"></param>
/// <returns></returns>
public async Task<GetAllProgrammeInfosByYearOutput> GetVoteResult(long inputYear,string sortProperty)
{
    var cache = _cacheManager
        .GetCache("GetAllProgrammeInfosByYearOutput");
    long year = inputYear == 0 ? DateTime.Now.Year : inputYear;
    //先尝试读取缓存,缓存没有则读取数据库
    var result =await cache.GetAsync("GetAllProgrammeInfosByYearOutput", async ()=> { return await GetVoteResult(year); }) as GetAllProgrammeInfosByYearOutput;
    return result;
}

原文地址:https://www.cnblogs.com/Lulus/p/8341459.html

时间: 2024-11-05 18:50:49

ABP缓存示例的相关文章

基于DDD的.NET开发框架 - ABP缓存Caching实现

返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ABP的官方网站:http://www.aspnetboilerplate.com ABP官方文档:http://www.aspnetboilerplate.com/Pages/Documents Github上的开源项目:http

C# 预计算和缓存示例之一

//预计算和缓存示例 static void Main(string[] args) { //第一种方法 var add = CalcFunc(); Console.WriteLine(add(10)(20)); var add30 = add(30); var add40 = add30(40); Console.WriteLine(add40); Console.Read(); } // 定义函数,返回一个调用函数 static Func<int, Func<int, int>>

基于 自定义注解 和 aop 实现使用memcache 对数据库的缓存 示例

好久没更新blog了,在新公司打拼了两个月,每天都从早忙到晚,学到了很多东西,但是没有时间来更新blog了.... 下面开始讲解这次的主题 公司老大让我研究 ocs 就是阿里云的 开放缓存服务 点击打开链接 其实就是一个memcache的服务 memchech 就是用内存来存放 key -value  在一些情况下就不必频繁的访问 数据库了(其实就是个map) 如何在常用的Dao中方便的使用这个map呢,我首先想到了 aop,然后又想到了自定义注解,那么就开始干吧.... aop动态代理要使用的

php静态文件缓存示例

//开始缓冲区 ob_start(); $cache_file = "./cache/4.3-static.html"; $cache_time = 1; //设置缓存更新时间 if (file_exists($cache_file) && time() - $cache_time < filemtime($cache_file)) { include($cache_file); echo "<!--published at " . da

http 缓存示例

服务器收到请求时,会在 200OK中回送该资源的 Last-Modified和 ETag头,客户端将该资源保存在 cache中,并记录这两个属性.当客户端需要发送相同的请求时,会在请求中携带 If-Modified-Since和 If-None-Match两个头.两个头的值分别是响应中 Last-Modified和 ETag头的值.服务器通过这两个头判断本地资源未发生变化,客户端不需要重新下载,返回 304响应.常见流程如下图所示: 上面的图片的是访问百度的时候,黑色的请求是取得资源,灰色的请求

Abp zero 示例运行

https://aspnetboilerplate.com/Pages/Documents/Zero/Startup-Template-Core Introduction The easiest way of starting a new project using ABP with ASP.NET Core MVC is to create a template on templates page. Remember to check "Include module zero". A

&lt;&lt;ABP框架&gt;&gt; 缓存

简介 ABP提供了一个缓存接口,它内部使用了这个缓存接口.虽然接口的默认实现是MemoryCache,但可以用任何其它实现的缓存供应器.Abp.RedisCache包用Redis实现了缓存(查看下方的“Redis 缓存集成”). ICacheManager 缓存的主要接口是ICacheManager.我们可以注入它并用它获取一个缓存,如: public class TestAppService : ApplicationService { private readonly ICacheManag

ABP开发框架前后端开发系列---(15)ABP框架的服务端和客户端缓存的使用

缓存在一个大型一点的系统里面是必然会涉及到的,合理的使用缓存能够给我们的系统带来更高的响应速度.由于数据提供服务涉及到数据库的相关操作,如果客户端的并发数量超过一定的数量,那么数据库的请求处理则以爆发式增长,如果数据库服务器无法快速处理这些并发请求,那么将会增加客户端的请求时间,严重者可能导致数据库服务或者应用服务直接瘫痪.缓存方案就是为这个而诞生,随着缓存的引入,可以把数据库的IO耗时操作,转换为内存数据的快速响应操作,或者把整个页面缓存到缓存系统里面.本篇随笔主要介绍利用ABP框架的支持实现

Hibernate缓存

一.Hibernate缓存概述 Hibernate中提供两个级别的缓存,一级缓存和二级缓存. 1.一级缓存是Session级别的缓存,它属于事物范围的缓存,一级缓存有hibernate进行管理. 2.二级缓存是sessionFactory级别的缓存,它属于进程范围的缓存,二级缓存又可分为"内置缓存"和"外置缓存",内置缓存:是hibernate在创建sessionFactory时会加载.hbn.xml文件并会在内存中初始化一些默认的sql语句,该内置缓存是只读的:外