【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

在微软 Azure 中用 Redis 为 ASP.NET 应用加速

  • 2015-11-19
  • 本文字数:1358 字

    阅读完需:约 4 分钟

Azure Redis Cache 是微软 Azure 提供的一项托管服务。该服务基于开源 Redis 缓存构建,能够利用 Redis 引擎低延迟、高吞吐量的特性提高应用程序的响应速度。

目前,Azure Redis Cache 包含以下三个服务等级:

  • 基本服务:仅有一个缓存节点,适合开发 / 测试和非关键工作负载,无 SLA。
  • 标准服务:有两个节点(主节点 / 备用节点),具备自动故障转移和自动复制功能,提供高可用 SLA。
  • 高级服务(预览):包含标准服务的所有特性,性能更好,安全性更高,支持更大的工作负载及灾难恢复。要了解更多特性,请查看这里

其中,基本 / 标准服务缓存上限为 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))。

2015-11-19 18:002345
用户头像

发布了 1008 篇内容, 共 373.6 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

《非暴力沟通》:如何温柔地沟通?

郭明

读书笔记

Fabric.js 居中元素 🎗️

德育处主任

fabric canvas FabricJS Fabric.js 6月月更

Kubernetes社区发行版:开源容器云OpenShift Origin(OKD)认知

山河已无恙

k8s openshift

vue基本语法使用

小恺

6月月更

【愚公系列】2022年06月 二十三种设计模式(二十二)-模板方法模式(Template Method Pattern)

愚公搬代码

6月月更

后端技术复习

卢卡多多

技术栈 6月月更

Flutter 使用 Redux 的中间件实现异步状态管理

岛上码农

flutter 安卓开发 ios 开发 跨平台应用 6月月更

详述Java中sort排序函数

工程师日月

算法 Java EE 6月月更

EasyRecovery15官方最新版下载功能介绍

茶色酒

EasyRecovery Easyrecovery破解 EasyRecovery15

Web Service进阶(一)运行原理

No Silver Bullet

6月月更 Web Service 运行原理

Web Service进阶(三)HTTP-GET, HTTP-POST and SOAP的比较

No Silver Bullet

soap 6月月更 Web Service HTTP-GET HTTP-POST

Linux驱动开发_数码相册项目、360WIFI驱动移植介绍

DS小龙哥

6月月更

Flink 通过 State Processor API 实现状态的读取和写入

JasonLee实时计算

flink

Flink on yarn 远程调试源码

JasonLee实时计算

flink

【技能树共建】Python 三元表达式

梦想橡皮擦

6月月更

spring event 介绍

Nick

Java spring springboot 6月月更 spring event

修改gradle脚本,加速spring4.1源码编译构建速度

程序员欣宸

Java spring Gradle 6月月更

C#入门系列(五) -- 运算符

陈言必行

C# 6月月更

每日一题 | LeetCode 242 有效的字母异位词

武师叔

哈希表 Leet Code 6月月更

linux驱动开发_文件系统本地挂载

DS小龙哥

6月月更

Django API 开发:一个 Todo 应用的后端

宇宙之一粟

6月月更

Linux下可执行程序的Shell传参格式规范

乌龟哥哥

6月月更

浅谈网络攻防中守方的准备工作

kk冲击波

6月月更 攻防演练

【LeetCode】数组中第 K 个独一无二的字符串Java题解

Albert

LeetCode 6月月更

拒绝八股文!这篇图解动态路由分分钟爱了

wljslmz

网络工程师 网络技术 动态路由 6月月更 路由协议

关于 SAP Commerce Cloud 的 Sample Setup Github 仓库

Jerry Wang

typescript angular SAP commerce 6月月更

Squarespace 和 WordPress 的区别

海拥(haiyong.site)

WordPress 6月月更

JavaScript迭代器

大熊G

JavaScript 前端 6月月更

《WebRTC源码深入剖析》总结

音视频专家-李超

源码分析 音视频 WebRTC 源码剖析

【盲盒APP】开发功能版块及功能介绍

WDL22119

Fork Join框架

急需上岸的小谢

6月月更

在微软Azure中用Redis为ASP.NET应用加速_微软_谢丽_InfoQ精选文章