它能做什么?

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

配置文件参数说明

默认配置

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

  1. /// <summary>
  2. /// 缓存管理
  3. /// </summary>
  4. public class CacheManager
  5. {
  6. /// <summary>
  7. /// 运行时缓存
  8. /// </summary>
  9. public static readonly IRunTime RunTimeCache;
  10. /// <summary>
  11. /// Redis
  12. /// </summary>
  13. public static readonly IRedis RedisDefault;
  14. /// <summary>
  15. /// Memcache
  16. /// </summary>
  17. public static readonly IMemcache MemcacheDefault;
  18. static CacheManager()
  19. {
  20. RunTimeCache = (RunTimeCache)CacheFactory.GetRunTime("RunTime");
  21. RedisDefault = (RedisCache)CacheFactory.GetRedis("RedisDefault");
  22. MemcacheDefault = (MemcacheCache)CacheFactory.GetMemcache("MemcacheDefault");
  23. }
  24. }

蚂蚁男孩.缓存组件(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. 【校招面试 之 C/C++】第6题 C++深拷贝与浅拷贝

    1.两个的区别(1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制.当数据成员中没有指针时,浅拷贝是可行的: 但当数据成员中有指针时,如果采用简单的浅 ...

  2. SourceTree下载 及使用

    SourceTree 代码库管理工具 https://www.cnblogs.com/QianChia/p/8531725.html#_label0 SourceTree的基本使用 https://w ...

  3. linux用户和组2

    1.用户相关命令 su 切换用户 root -> 普通用户 不需要密码 普通用户之间 需要密码 普通用户->root 需要密码 newgrp 切换组身份 whoami 查看当前登录名称 i ...

  4. 【SQL模板】二.创建表视图模板TSQL

    ---Name: 创建表视图模板.sql ---Purpose: 用于创建 数据库中 新的数据表/视图 ---Author: xx ---Time: 2015-12-18 10:26:06 ---Re ...

  5. Region特征算子与形态学运算——第3讲

      问题提出:求下图中楔形缺口到圆心的最短距离. [涉及知识点讲解] 一.Region特征算子 在图形窗口中用鼠标单击选中某个Region,然后点击菜单栏的“打开特征检测”图标,就可以看到当前Regi ...

  6. dumpbin 查看dll中的导出函数

    C:\Program Files (x86)\Microsoft Visual Studio 14.0>dumpbin -exports E:\20171110\Release\aa.dll h ...

  7. g++报错原因分析:expected class-name before ‘{’ token

    今天写程序的时候, 遇到这样一个错误expected class-name before ‘{’ token 最后发现原来是我的头文件声明没有加. 继承时不要忘记加基类的头文件 错误: class F ...

  8. 深入浅出 JMS(三) - ActiveMQ 安全机制

    深入浅出 JMS(三) - ActiveMQ 安全机制 一.认证 认证(Authentication):验证某个实体或者用户是否有权限访问受保护资源. MQ 提供两种插件用于权限认证: (一).Sim ...

  9. 命名空间namespace ,以及重复定义的问题解析

    名字空间是用来划分冲突域的,把全局名字空间划分成几个小的名字空间.全局函数,全局变量,以及类的名字是在同一个全局名字空间中,有时为了防止命名冲突,会把这些名字放到不同的名字空间中去. 首先我们看一下名 ...

  10. linux tty设置详解

    http://blog.csdn.net/againyuan/article/details/3905380 linux串口termios NAME termios, tcgetattr, tcset ...