蚂蚁男孩.缓存组件(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
不同
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");
}
}