它能做什么?

  主要是用来方便使用缓存而诞生,该组件封装了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");
}
}

蚂蚁男孩.缓存组件(Framework.Mayiboy.Caching)的更多相关文章

  1. 蚂蚁男孩.队列组件(Framework.Mayiboy.Queue)

    它能做什么 主要是用来方便使用队列而诞生,该组件封装了Queue和Redis中的队列,能够通过简单配置就可以高效快速使用起来. 使用说明 一.    下载源码,自己手动编译,手动引用必要的程序集.(需 ...

  2. .Net Core缓存组件(Redis)源码解析

    上一篇文章已经介绍了MemoryCache,MemoryCache存储的数据类型是Object,也说了Redis支持五中数据类型的存储,但是微软的Redis缓存组件只实现了Hash类型的存储.在分析源 ...

  3. .Net Core缓存组件(MemoryCache)源码解析

    一.介绍 由于CPU从内存中读取数据的速度比从磁盘读取快几个数量级,并且存在内存中,减小了数据库访问的压力,所以缓存几乎每个项目都会用到.一般常用的有MemoryCache.Redis.MemoryC ...

  4. 构建自己的PHP框架--构建缓存组件(2)

    上一篇博客中使用文件实现了缓存组件,这一篇我们就使用Redis来实现一下,剩下的如何使用memcache.mysql等去实现缓存我就不一一去做了. 首先我们需要安装一下 redis 和 phpredi ...

  5. 构建自己的PHP框架--构建缓存组件(1)

    作为一个框架,我们还没有相应的缓存组件,下面我们就来构建我们的缓存组件. 先来定义一下接口,在 src 文件夹下创建 cache 文件夹,在cache文件夹下创建 CacheInterface.php ...

  6. golang开发缓存组件

    代码地址github:cache 花了一天时间看了下实验楼的cache组件,使用golang编写的,收获还是蛮多的,缓存组件的设计其实挺简单的,主要思路或者设计点如下: 全局struct对象:用来做缓 ...

  7. Django学习之十二:Cache 缓存组件

    目录 Django Cache 缓存组件 缓存逻辑伪代码 配置缓存源 可配置参数说明 01. Django的默认缓存 02. 基于Redis的django-redis 03. 自定义cache 04. ...

  8. 在nodejs中怎么使用redis缓存组件

    redis量个强大的缓存组件,可以部署在windows和linux环境之上,它有五大存储结构,其中有一种为列表list,它可以实现quene和stack的功能,即队列和堆栈的功能. 当然使用先安装py ...

  9. vue-learning:34 - component - 内置组件 - 缓存组件keep-alive

    vue内置缓存组件keep-alive <keep-alive>标签内包裹的组件切换时会缓存组件实例,而不是销毁它们.避免多次加载相应的组件,减少性能消耗.并且当组件在 <keep- ...

随机推荐

  1. 百度BAE的一些使用心得

    休眠会释放单元资源停止收费,那就不用被百度收费了

  2. spine

    spine 英 [spʌɪn] 美 [spaɪn]  n.脊柱;[动,植] 棘,刺(如刺猬和海胆的刺);鱼鳍的刺;植物上的刺

  3. actionBar_Tab导航

    actionBar配合碎片使用  初始化actionBar要注意设置actionbar的导航模式 package com.qf.actionbar04_tab; import java.io.File ...

  4. Paypal支付

    <!--Paypal支付数据开始--> <input type="hidden" name="charset" value="utf ...

  5. 屏幕录像专家exe视频批量翻录成视频avi格式

    笔者下载过一些视频,全部是屏幕录像专家录制的exe视频,这些视频没有密码,可以顺利打开看看. 有一日想把这些视频转换成wmv格式放到手机上查看.一个目录下有那么大exe视频.一个个转特别麻烦. 后来想 ...

  6. DB2频繁出现死锁,常用解决问题的命令

    --DB2频繁出现死锁,常用解决问题的命令db2 get snapshot for locks on sampledb2 get db cfg for sampledb2 update db cfg ...

  7. [Selenium]如何实现上传本地文件

    public void uploadLocalFileToServer(String uploadFileName){ String AutomationPath = System.getProper ...

  8. HTTP Error 403.14问题处理

    打开目录浏览后,点击启用.

  9. shell的一些简单用法

    一 BASH的属性 BASH中会存储一些自身属性的参数,启用或关闭某一项功能 例如控制* .字符是否为通配 查看参数 set -o 关闭noglob参数 set -o noglob ls * ls: ...

  10. IntelliJ IDEA 2017版 导入项目项目名称为红色

    1.导入的项目全部是红色的,原因是版本控制问题,所以修改如下:(File--->settings) 2.找到如图位置的字样,选中当前项目,选择铅笔位置 选择铅笔 弹出对话框(默认选择的是proj ...