首页 > 其他 > 详细

我的ORM之十一 -- 缓存

时间:2015-05-26 23:24:09      阅读:280      评论:0      收藏:0      [点我收藏+]

对某一个查询频繁重复,应该使用缓存。

缓存应该是可以配置。

Web.config:

<configuration>
  <configSections>
    <section name="MyOql" type="MyOql.MyOqlConfigSect,MyOql" />
  </configSections>
  <MyOql configSource="MyOql.config" />
</configuration>
MyOql.config:
<MyOql>
  <Entitys db="dbo" CacheTime="0" CacheSqlTime="0" MaxCacheTime="43200" OraclePKG="PKG" Owner="dbo" >
    <Group  Name="本地缓存"  CacheType="Local" CacheSqlTime="3600" CacheTime="3600" >
      <Entity Name="S_Menu"   UsePower="="  />
      <Entity Name="P_CarInfo" />
    </Group>
  </Entitys>
  <DbProviders>
    <Provider Name="SqlServer" Type="MyOql.Provider.SqlServer,MyOql"/>
    <Provider Name="MySql" Type="MyOql.Provider.MySql,MyOql.MySql"/>
    <Provider Name="Oracle" Type="MyOql.Provider.Oracle,MyOql.OracleProvider"/>
  </DbProviders>
</MyOql>

配置项:
db:  指定数据库配置项
Owner:  指定数据库前缀
Name:  数据库表名,视图名,存储过程名。
CacheTime:  单表按主键、唯一键、自增键查询缓存时间。单位 秒
CacheSqlTime:  按除 CacheTime 之外的情况下,缓存时间。如果有多个表,按配置项最小的缓存时间。 单位 秒
ToShadow:  配置是否转存到影子库,当物理删除的时候,可以把数据转存到影子库。布尔值
MaxCacheTime:   如果最初缓存时间到现在超过最大缓存时间,则强制失效。单位 秒
CacheType:  指定缓存服务器。
UsePower:  权限类型,单字符表示一个权限,可选类型: CRUD= ~*  
       其中:
      C 表示 Create,R 表示Read,U表示Update,D表示Delete。
      = 表示是否启用行集权限.
      
~ 表示自定义过滤。
      * 是所有权限
      true 表示所有权限
      false 表示没有任何权限
Filter:  在 UsePower = "~" 时, Filter 表示传递给自定义过滤的 关键字
Type:  表示表的类型, 如: Corp 表示是公司表。可以动态对该表进行分库。 
Log:  可选值,单个字符表示一个MyOql操作类型的日志, CRUD=*
OraclePKG:  Oracle存储过程包名。

数据库中的数据,可以分为:
  • 稳定数据
  • 易变数据

如果有多个应用:

  • 易变数据的缓存管理不应该寄宿在各自的应用程序池中。应该统一有一个缓存管理中心;
  • 稳定数据,应该在各自的应用程序池中寄存,以增强性能,以 最大缓存时间 为周期,一旦第一次缓存时间超过最大缓存时间,则强制失效。

 

 

我的ORM之十一 -- 缓存

原文:http://www.cnblogs.com/newsea/p/4531935.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!