ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十五节--缓存小结与ABP框架项目中 Redis Cache的实现

缓存为什么要用缓存传统的缓存方式MVC缓存一控制器缓存二Action缓存Outputcache特性常用的属性参数输出缓存CacheProfile使用配置文件设置缓存ABP Redis CacheABP中使用ICacheManager进行缓存管理ICacheITypedCacheConfigurationEntity CachingRedis Cache 集成返回总目录:
摘要由CSDN通过智能技术生成

返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期

缓存

为什么要用缓存

为什么要用缓存呢,说缓存之前先说使用缓存的优点。

  • 减少寄宿服务器的往返调用(round-trips)。
  • 如果缓存在客户端或是代理,将减少对服务器的请求,减少带宽。
  • 减少对数据库服务器的往返调用(round-trips)。
  • 当内容缓存在web服务器,能够减轻对数据库的请求。
  • 减少网络带宽。
  • 避免了重新生成可重用内容的时耗。
  • 提高性能
  • 因为缓存减少了round-trips, network traffic(网络带宽),并避免- 了生成可重用内容的时耗,所以对性能有巨大的提高。

传统的缓存方式

传统的缓存方式如下面这张图
image.png
之前我们处理方式处理起来也很简单
1. 页面输出缓存,直接在 ASP.NET中页面缓存的使用OutputCache 在aspx页的顶部加这样一句即可:
<%@ OutputCache Duration="60" VaryByParam="none" %>
Duration 表示缓存的时间秒,必选,否则报错。
2. 第二种方式
if (this.Cache["Keys"] == null)
{
this.Cache.Insert("Keys", List, null, DateTime.Now.AddHours(2), TimeSpan.Zero);
}

这里是检查缓存中Keys是否存在,如果不存在,则写入一个新的值List.还有其他的一些使用方法。
image.png

上面两种方式显然不在现在使用范畴,也不在我想说的范畴之内。,年代貌似有点久远,不用webform基本用不到。现在我们更多是的使用MVC。
我们想说的是MVC输出缓存。

MVC缓存

输出缓存Outputcache ,分为Action输出缓存和Controller输出缓存。使用的场景包括某个页面的数据更新不是很频繁,不需要每次都从数据库区查询。缓存起来从内存中读取。

数据缓存:是相对于全局的。任何地方需要调用的时候都可以去调用。使用的场景包括权限管理这种模块的。每个角色对于菜单的访问都是固定的,所以有必要将角色,权限,菜单这种数据做一个全局的数据缓存。修改时再做缓存的更新。

输出缓存和数据缓存区别:打个比方输出缓存就像是“局部变量”,数据缓存就像是全局变量(只是个比喻)。

Controller输出缓存和 Action缓存使用方式是一样的,就是Controller 或Action上打[OutPutCache]特性标签。但是他们之间又是有区别的。

一、控制器缓存

Control缓存的作用域是整个控制器,所以在这个控制器下的所有Action都会被缓存起来。Control缓存的粒度比较粗,应用也比较少些。

[OutputCache(Duration = 10)]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.CurrentTime = DateTime.Now;
return View();
}
}

二、Action缓存

将[OutPutCache]特性标签打在Action上,这样,只有加缓存的Action才会有缓存,其他的Action是没有的。

Outputcache特性常用的属性参数

名称 描述
AllowMultiple 获取或设置一个值,该值指示是否可指定筛选器特性的多个实例。
CacheProfile 获取或设置缓存配置文件名称。
ChildActionCache 获取或设置子操作缓存。
Duration 获取或设置缓存持续时间(以秒为单位)。
Location 获取或设置位置。
NoStore 获取或设置一个值,该值指示是否存储缓存。
Order 获取或者设置执行
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值