蚂蚁男孩.缓存组件(Framework.Mayiboy.Caching)

它能做什么?

  主要是用来方便使用缓存而诞生,该组件封装了RunTimeCache、Memcached、Redis的使用,通过简单配置就能高效快速使用起来。

使用说明

一、
    下载源码,自己手动编译,手动引用必要的程序集。(需要手动创建配置文件)

二、
    通过NuGet安装Packages
      在程序包管理器控制台中输入Install-Package Framework.Mayiboy.Caching 回车自动安装。如图:

配置文件说明

配置文件有四种配置来源,
1、项目配置文件configSections节点配置。(在web.config文件配置configSections节点指定配置参数)
2、应用根目录路径Framework.Mayiboy.Caching.config。(在应用程序跟路径使用Framework.Mayiboy.Caching.config配置文件)
3、应用程序配置文件路径。(配置文件路径使用Framework.Mayiboy.Caching.config配置文件)
4、环境变量指定配置文件路径。(在系统环境变量中配置Framework.Mayiboy.Caching.config配置文件路径,环境变量名FRAMEWORK.MAYIBOY.CACHING_CACHING_GLOBAL_CONFIG_FILE

配置文件参数说明

默认配置

<?xml version="1.0" encoding="utf-8" ?>
<Framework.Mayiboy.Caching>
  <!--IsLog[true,false]:是否开启全局日志路径
      ThrowException[true,false]:设置日志组件是否向应用抛出异常
      InnerLogPath[filepath]:全局日志路径(当IsLog="true"有效)
  -->
  <!-- 缓存组件全局配置 -->
  <Global IsLog="true" ThrowException="true" InnerLogPath="D:\applogs\framework.mayiboy.caching\Caching\" />
  <!-- 缓存配置 -->
  <Caches>
    <cache Name="RunTime" Type="RunTime"/>
    <cache Name="MemcacheDefault" Type="memcache" serverIPs="127.0.0.1:11211"/>
    <cache Name="RedisDefault" Type="Redis" ServerIPsWrite="127.0.0.1:6379" ServerIPsReadOnly="127.0.0.1:6379" defaultdb="0"/>
  </Caches>
</Framework.Mayiboy.Caching>

  

Global节点配置

        IsLog【true|false】:配置true时表示启用缓存配置日志文件,当组件出现不可预料的异常或者是需要输出必要提示时,会将其信息写入到配置文件中。

        ThrowException:【true|false】:配置true时表示当缓存组件出现不可预料的异常时,组件会将异常直接抛出,终止当前执行,不会写入到 配置文件中。

        InnerLogPath:日志文件输出路径。

Caches节点配置

每个cache表示一个缓存来源,通过Type【RunTime|Memcache|Redis】属性区分使用RunTimeCache、Memcached、Redis

RunTime表示使用使用运行时缓存

        Type="RunTime":缓存对象使用的是MemoryCache, , 注意和HttpRuntime.Cache不同

Memcache表示使用Memcached缓存

        serverIPs:配置缓存服务器地址,可以通过;配置多台服务器
        connectionTimeout:连接超时时间(默认3000)
        socketTimeout:通信超时时间(默认3000)
        minConnections:最小连接数(默认10)
        maxConnections:最大连接数(默认50)
        encoding:编码格式(默认:UTF-8

Redis表示使用Redis(支持读写分离)

        ServerIPsWrite:写服务器地址,可以通过";"分隔符配置多台服务器
        ServerIPsReadOnly:读服务器地址,可以通过";"分隔符配置多台服务器
        MaxWritePoolSize:最大写链接数(默认10)
        MaxReadPoolSize:最大读链接数(默认10)
        DefaultDb:Redis Db节点(默认0)

获取缓存实现

RunTimeCache:var RunTimeCache = (RunTimeCache)CacheFactory.GetRunTime("RunTime");
Memcached:var MemcacheDefault = (MemcacheCache)CacheFactory.GetMemcache("MemcacheDefault");
Redis:var RedisDefault = (RedisCache)CacheFactory.GetRedis("RedisDefault");

建议使用方式,新建一个CacheManager文件

/// <summary>
/// 缓存管理
/// </summary>
public class CacheManager
{
    /// <summary>
    /// 运行时缓存
    /// </summary>
    public static readonly IRunTime RunTimeCache;

    /// <summary>
    /// Redis
    /// </summary>
    public static readonly IRedis RedisDefault;

    /// <summary>
    /// Memcache
    /// </summary>
    public static readonly IMemcache MemcacheDefault;

    static CacheManager()
    {
        RunTimeCache = (RunTimeCache)CacheFactory.GetRunTime("RunTime");
        RedisDefault = (RedisCache)CacheFactory.GetRedis("RedisDefault");
        MemcacheDefault = (MemcacheCache)CacheFactory.GetMemcache("MemcacheDefault");
    }
}


posted @ 2018-06-23 17:07  闲僧  阅读(856)  评论(0编辑  收藏  举报