蚂蚁男孩.缓存组件(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");
}
}
蚂蚁男孩.缓存组件(Framework.Mayiboy.Caching)的更多相关文章
- 蚂蚁男孩.队列组件(Framework.Mayiboy.Queue)
它能做什么 主要是用来方便使用队列而诞生,该组件封装了Queue和Redis中的队列,能够通过简单配置就可以高效快速使用起来. 使用说明 一. 下载源码,自己手动编译,手动引用必要的程序集.(需 ...
- .Net Core缓存组件(Redis)源码解析
上一篇文章已经介绍了MemoryCache,MemoryCache存储的数据类型是Object,也说了Redis支持五中数据类型的存储,但是微软的Redis缓存组件只实现了Hash类型的存储.在分析源 ...
- .Net Core缓存组件(MemoryCache)源码解析
一.介绍 由于CPU从内存中读取数据的速度比从磁盘读取快几个数量级,并且存在内存中,减小了数据库访问的压力,所以缓存几乎每个项目都会用到.一般常用的有MemoryCache.Redis.MemoryC ...
- 构建自己的PHP框架--构建缓存组件(2)
上一篇博客中使用文件实现了缓存组件,这一篇我们就使用Redis来实现一下,剩下的如何使用memcache.mysql等去实现缓存我就不一一去做了. 首先我们需要安装一下 redis 和 phpredi ...
- 构建自己的PHP框架--构建缓存组件(1)
作为一个框架,我们还没有相应的缓存组件,下面我们就来构建我们的缓存组件. 先来定义一下接口,在 src 文件夹下创建 cache 文件夹,在cache文件夹下创建 CacheInterface.php ...
- golang开发缓存组件
代码地址github:cache 花了一天时间看了下实验楼的cache组件,使用golang编写的,收获还是蛮多的,缓存组件的设计其实挺简单的,主要思路或者设计点如下: 全局struct对象:用来做缓 ...
- Django学习之十二:Cache 缓存组件
目录 Django Cache 缓存组件 缓存逻辑伪代码 配置缓存源 可配置参数说明 01. Django的默认缓存 02. 基于Redis的django-redis 03. 自定义cache 04. ...
- 在nodejs中怎么使用redis缓存组件
redis量个强大的缓存组件,可以部署在windows和linux环境之上,它有五大存储结构,其中有一种为列表list,它可以实现quene和stack的功能,即队列和堆栈的功能. 当然使用先安装py ...
- vue-learning:34 - component - 内置组件 - 缓存组件keep-alive
vue内置缓存组件keep-alive <keep-alive>标签内包裹的组件切换时会缓存组件实例,而不是销毁它们.避免多次加载相应的组件,减少性能消耗.并且当组件在 <keep- ...
随机推荐
- 【校招面试 之 C/C++】第6题 C++深拷贝与浅拷贝
1.两个的区别(1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制.当数据成员中没有指针时,浅拷贝是可行的: 但当数据成员中有指针时,如果采用简单的浅 ...
- SourceTree下载 及使用
SourceTree 代码库管理工具 https://www.cnblogs.com/QianChia/p/8531725.html#_label0 SourceTree的基本使用 https://w ...
- linux用户和组2
1.用户相关命令 su 切换用户 root -> 普通用户 不需要密码 普通用户之间 需要密码 普通用户->root 需要密码 newgrp 切换组身份 whoami 查看当前登录名称 i ...
- 【SQL模板】二.创建表视图模板TSQL
---Name: 创建表视图模板.sql ---Purpose: 用于创建 数据库中 新的数据表/视图 ---Author: xx ---Time: 2015-12-18 10:26:06 ---Re ...
- Region特征算子与形态学运算——第3讲
问题提出:求下图中楔形缺口到圆心的最短距离. [涉及知识点讲解] 一.Region特征算子 在图形窗口中用鼠标单击选中某个Region,然后点击菜单栏的“打开特征检测”图标,就可以看到当前Regi ...
- dumpbin 查看dll中的导出函数
C:\Program Files (x86)\Microsoft Visual Studio 14.0>dumpbin -exports E:\20171110\Release\aa.dll h ...
- g++报错原因分析:expected class-name before ‘{’ token
今天写程序的时候, 遇到这样一个错误expected class-name before ‘{’ token 最后发现原来是我的头文件声明没有加. 继承时不要忘记加基类的头文件 错误: class F ...
- 深入浅出 JMS(三) - ActiveMQ 安全机制
深入浅出 JMS(三) - ActiveMQ 安全机制 一.认证 认证(Authentication):验证某个实体或者用户是否有权限访问受保护资源. MQ 提供两种插件用于权限认证: (一).Sim ...
- 命名空间namespace ,以及重复定义的问题解析
名字空间是用来划分冲突域的,把全局名字空间划分成几个小的名字空间.全局函数,全局变量,以及类的名字是在同一个全局名字空间中,有时为了防止命名冲突,会把这些名字放到不同的名字空间中去. 首先我们看一下名 ...
- linux tty设置详解
http://blog.csdn.net/againyuan/article/details/3905380 linux串口termios NAME termios, tcgetattr, tcset ...