Azure Redis Cache 是微软Azure提供的一项托管服务。该服务基于开源Redis缓存构建,能够利用Redis引擎低延迟、高吞吐量的特性提高应用程序的响应速度。
目前,Azure Redis Cache包含以下三个服务等级:
其中,基本/标准服务缓存上限为53GB,而高级服务的缓存上限为530GB。价格信息可以查看 这里 。
Scott Hanselman 是微软Web平台&工具部门的一名项目经理。去年,他曾 撰文 介绍 Azure Redis Cache 的基本用法。近日,他又 介绍了一种新的Azure Redis Cache应用场景 ,即将其作为ASP.NET应用的缓存。
重要通知:接下来InfoQ将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注InfoQ微信公众号第一时间阅读精品内容。
据Scott介绍,ASP.NET现在提供了很好的Redis支持,可以从NuGet上下载Microsoft.Web.RedisSessionStateProvider库:
Install-Package Microsoft.Web.RedisSessionStateProvider
该库底层使用了 StackExchange ,但允许ASP.NET使用Session对象,并在Redis中保存结果,而不是在Web服务器的内存中。使用下面的代码在web.config中添加该库:
<sessionState mode="Custom" customProvider="FooFoo"> <providers> <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="hanselcache.redis.cache.windows.net" accessKey="THEKEY" ssl="true" port="1234" /> </providers> </sessionState>
从 Redis Desktop Manager 中可以看到存储在Redis中的ASP.NET Session数据,如下图所示:
Redis Cache不仅可以用于存储Session State,而且还可以用于Output Cache,即将整个HTTP响应缓存。相应的库在ASP.NET 4.x中的安装方法同Session State Provider类似:
Install-Package Microsoft.Web.RedisOutputCacheProvider
这样,当在MVC Controller中使用[OutputCache]属性或在Web Forms中使用OutputCache指令(如<%@ OutputCache Duration="60" VaryByParam="*" %>)时,响应就会通过Redis来处理。对于类似产品目录这样的应用,可使其响应速度提高4~10倍。
用户也可以通过编程使用Redis,微软提供了在 .NET 、 Node.js 、 Java 和 Python 中使用Azure Redis Cache的文档。如果不想在Azure甚或Linux上运行 Redis ,那么可以选用 MSOpenTech的Redis on Windows分支 。安装完成后,就可以通过命令行 使用redis-cli.exe同Azure Redis Cache交互 。而如果使用了本地Redis服务器(redis-server.exe),那么在部署到Azure的时候需要修改应用的Redis连接字符串。
感谢魏星对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 (已满),InfoQ读者交流群(#2) )。