缓存方案笔记

 .NET缓存方案对比

存储方式 存储位置 过期策略 优先级 线程安全 应用场景
Dictionary<string,object> hash 内存 不支持 不支持 不支持 很少
Enterprise Library 5.0's Caching Application Block

hash(在内存中)

内存、数据库、文件等

支持  支持 支持 (过时、不推荐)

Caching by .NET Framework

hash 内存 支持 支持 支持 较小规模(推荐)
memcached            
redis    内存 支持 支持 支持 大规模(推荐)

  

  

   

.NET数据缓存框架(Caching by .NET Framework)

支持 功能 应用场景

System.HttpRuntime.Cache

System.Web.Caching.Cache

System.Web.Context.Current.Cache

全部 网站中缓存对象实例,HTML等 web
System.Runtime.Caching .NET 4.0 各种对象 web / non-web
System.Web.Caching.OutputCacheProvider  .NET 4.0 网站中缓存HTML页面 web

  

  

  说明

  1,System.Web.Caching.Cache ,System.Web.Context.Current.Cache 在实现上都是调用的System.HttpRuntime.Cache

  2,System.Runtime.Caching完全可以用于替代Enterprise Library Cache Application Block的作用。

  3,System.Runtime.Caching.ObjectCache: 抽象类,可用于自定义的缓存扩展。它定义了如下功能:

    (1)创建并管理缓存条目;

    (2)指明超时 和退出信息;

    (3)缓存条目发生变化时触发相应的消息;

       System.Runtime.Caching.MemoryCache:是System.Runtime.Caching.ObjectCache的实现,一般足够使用

  4,System.Web.Caching.OutputCacheProvider 抽象类,可用于自定义的网页HTML页面缓存。

   

redis

  Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。特点:

  (1)Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的;

  (2)Redis相比许多键值数据存储系统有相对丰富的数据类型;

  (3)Redis可以将数据复制到任意数量的从服务器中;

参考:

  全面认识一下.NET 4.0的缓存功能

  http://www.cnblogs.com/hjf1223/archive/2010/07/16/net_4_caching.html

  Caching in .NET Framework Applications

  https://msdn.microsoft.com/en-us/library/dd997357(v=vs.110).aspx

原文地址:https://www.cnblogs.com/the-owl/p/5656150.html