Magicodes.WeiChat——缓存管理
本框架支持缓存管理,内部机制使用开源库CacheManager。支持全局缓存、租户缓存,默认使用的系统缓存实现,可以在Web.config将其配置为其他缓存类型,比如支持Redis、内存等。
开源库地址:https://github.com/MichaCo/CacheManager
1.1.1 配置
默认配置如下,见Web.config cacheManager元素内容:
<!--缓存配置--> <cacheManager xmlns="http://tempuri.org/CacheManagerCfg.xsd"> <managers> <cache name="defaultCache" updateMode="Up" enableStatistics="true" enablePerformanceCounters="true"> <handle ref="sysCache" name="defaultHandle" expirationMode="Absolute" timeout="3600s"/> </cache> </managers> <cacheHandles> <handleDef id="sysCache" type="CacheManager.SystemRuntimeCaching.MemoryCacheHandle`1, CacheManager.SystemRuntimeCaching" /> </cacheHandles> </cacheManager>
相关配置说明请参考:http://cachemanager.net/Documentation/Index/cachemanager_configuration
1.1.2 相关函数介绍:
/// <summary> /// 获取缓存 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="key">key</param> /// <returns>值</returns> public T Get<T>(string key) /// <summary> /// 获取缓存 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="key">key</param> /// <param name="tenantKey">租户Key值,如果为NULL则框架会自动获取当前账户的租户Id</param> /// <returns>值</returns> public T GetByTenant<T>(string key, string tenantKey = null) /// <summary> /// 添加或更新缓存 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="key">key</param> /// <param name="value">值</param> public void AddOrUpdate<T>(string key, T value) /// <summary> /// 添加或更新缓存 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="key">key</param> /// <param name="value">值</param> /// <param name="expire">过期时间</param> public void AddOrUpdate<T>(string key, T value, TimeSpan expire) /// <summary> /// 根据租户缓存 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key"></param> /// <param name="value"></param> /// <param name="tenantKey">租户Key值,如果为NULL则框架会自动获取当前账户的租户Id</param> public void AddOrUpdateByTenant<T>(string key, T value, string tenantKey = null) /// <summary> /// 根据租户缓存 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key"></param> /// <param name="value"></param> /// <param name="expire"></param> /// <param name="tenantKey"></param> public void AddOrUpdateByTenant<T>(string key, T value, TimeSpan expire, string tenantKey = null) /// <summary> /// 移除 /// </summary> /// <param name="key">缓存Key</param> /// <returns>是否移除成功</returns> public bool Remove<T>(string key) /// <summary> /// 根据租户移除 /// </summary> /// <param name="key">缓存Key</param> /// <param name="tenantKey">租户Key值,如果为NULL则框架会自动获取当前账户的租户Id</param> /// <returns>是否移除成功</returns> public bool RemoveByTenant<T>(string key, string tenantKey = null) /// <summary> /// 清理所有 /// </summary> /// <typeparam name="T">值类型</typeparam> public void Clear<T>() /// <summary> /// 清理所有 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="tenantKey">租户Key值,如果为NULL则框架会自动获取当前账户的租户Id</param> public void ClearByTenant<T>(string tenantKey = null)
1.1.3 Demo
获取缓存对象:
using Magicodes.WeiChat.Infrastructure.Cache;
var cache =CacheManager.Current;
获取值(全局):
var value = cache.Get<int>("UserSummaryCount");
获取值(按租户)
var value = cache.GetByTenant<int>("UserSummaryCount");
添加或更新值(全局):
cache.AddOrUpdate("UserSummaryCount", value);
cache.AddOrUpdate("UserSummaryCount", value, TimeSpan.FromHours(1));
添加或更新值(按租户):
cache.AddOrUpdateByTenant("UserSummaryCount", value);
cache.AddOrUpdateByTenant("UserSummaryCount", value, TimeSpan.FromHours(1));
Magicodes.WeiChat——缓存管理的更多相关文章
- Magicodes.WeiChat——版本发布历史
购买地址:https://item.taobao.com/item.htm?id=520205558575 您可以在新标签页打开此图,以查看原始图片. Magicodes.WeiChat为湖南心莱信息 ...
- Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单
本人一向比较喜欢折腾,玩了这么久的knockoutjs,总觉得不够劲,于是又开始准备折腾自己了. 最近在完善Magicodes.WeiChat微信开发框架时,发现之前做的自定义菜单这块太不给力了,而各 ...
- Magicodes.WeiChat——多租户的设计与实现
概要 多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务. 本框架使用的是共享数据库.共享 Schema.共享数据表的数据 ...
- Magicodes.WeiChat——WeChatOAuthTest(网页授权获取用户基本信息)
Demo访问地址:http://wechat.magicodes.net/app/AppDemo/WeChatOAuthTest?tenantId=1 关于公众号如何获取用户信息,请参考此文档:htt ...
- Magicodes.WeiChat——V3.0(多租户)版本发布
主要内容如下: 添加项目Magicodes.WeiChat.Data.Multitenant,全面支持多租户(基于EF已经ASP.NET Identity) 增加租户管理.租户成员管理.修改密码.公众 ...
- HTML5 离线缓存管理库
一.HTML5离线缓存技术 支持离线缓存是HTML5中的一个重点,离线缓存就是让用户即使在断网的情况下依然可以正常的运行应用.传统的本地存储数据的方式有 localstorage,sessionsto ...
- Spring自定义缓存管理及配置Ehcache缓存
spring自带缓存.自建缓存管理器等都可解决项目部分性能问题.结合Ehcache后性能更优,使用也比较简单. 在进行Ehcache学习之前,最好对Spring自带的缓存管理有一个总体的认识. 这篇文 ...
- 基于吉日嘎拉的通用权限管理WebForm版扩展:字典选项管理和缓存管理
关于字典管理,其实就是2个表,一个表记录字典和对应表,另一个表记录字典内容.我这里改名为字典选项,其实是一个意思.直接上图: 这里的字典选项是分子系统的,每个子系统可以有自己的单独字典,方便管理.但是 ...
- [js开源组件开发]localStorage-cache本地存储的缓存管理
localStorage-cache本地存储的缓存管理 距离上次的组件开发有近三个月的时间了,最近一直在做一些杂事,无法静下心来写写代码,也是在学习emberjs,在emberjs中有一个很重要的东西 ...
随机推荐
- 计算hashCode的常见方法
把某个非零常数值,比如说17,保存在一个叫result的int类型的变量中. 2.对于对象中每一个关键域f(值equals方法中考虑的每一个域),完成以下步骤: a.为该域计算int类型的散列吗c: ...
- teamviewer现在无法捕捉屏幕,这可能是由于快速的用户切换或远程桌面会话已经断开
解决方法: 不用远程连接过去开启teamview,直接在在电脑本机上手动开启teamview就可以了 即:如果是mstsc远程过去开启,则会有这个错误提示,需要让服务器连接显示器,手动去登录 ...
- c# winform 打包部署 自定义界面 或设置开机启动
添加安装部署项目后,鼠标右键安装项目->视图->注册表, 要使软件在开机就运行,可以在HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren ...
- xtrabackup备份与恢复实践
说明 xtrabackup --percona 特点: 开源,在线备份innodb表 支持限速备份,避免对业务造成影响 支持流备 支持增量备份 支持备份文件压缩与加密 支持并行备份与恢复,速度快 ...
- 解决PHP在IE中下载文件,中文文件名乱码问题
if( stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE')!==false ) $filename = urlencode( $filename ); // 输入 ...
- js 更改head的title
使用document.title = "hello"; 不能使用 $("title").text("dd");或者 $ ...
- Unity协程(Coroutine)原理深入剖析
Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 其实协程并没有那么复杂,网上很多地方都说是多 ...
- spi_flash
http://blog.chinaunix.net/uid-27406766-id-3384699.html
- python学习笔记1-元类__metaclass__
type 其实就是元类,type 是python 背后创建所有对象的元类 python 中的类的创建规则: 假设创建Foo 这个类 class Foo(Bar): def __init__(): ...
- B站运维团队成长的血泪史
胡凯,bilibili运维负责人,曾经就职于金山软件.金山网络.猎豹移动,负责运维相关工作.Bilibili是国内最大的年轻人潮流文化娱乐社区,银河系知名弹幕视频分享UGC平台. 95后二次元新人 ...