首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis是如何融入ASP.NET Web世界的?

Redis是如何融入ASP.NET Web世界的?
EN

Stack Overflow用户
提问于 2014-04-01 18:11:01
回答 1查看 1.5K关注 0票数 8

如果您考虑使用Redis实现二级缓存的大规模解决方案,或者您的第一个数据源也是Redis, ASP.NET WebAPI OData实现是如何与类似键值存储的东西协同工作的。

我可以通过OData解析器分析生成的表达式树,并将一些过滤器转换为Redis操作,但是当您实现纯REST时,Redis的全部特性最适合:

  • http://somesite.com/users => users (Redis set)
  • http://somesite.com/users/1 => users:11 (Redis key)

如果我想要最新的注册用户,也许我会有这样的东西:

  • http://somesite.com/users/latest => users:latest (Redis排序集)

整个问题..。

在这种情况下OData必须做什么?

EN

回答 1

Stack Overflow用户

发布于 2015-01-29 20:55:20

我认为Redis在OData环境中可能非常有用。我认为首先我要解决一个感知问题: OData不是“纯粹的REST”。休息,当然,可能意味着很多事情,因为它没有什么标准。在大多数情况下,REST使用映射到实体上操作的标准HTTP谓词来表示HTTP/S上的JSON。OData只是简单地接受了这一点,向它添加了一些更正式的定义,并为它添加了一个标准元数据层(如果您愿意,可以选择忽略它)。正因为如此,我才把OData称为"JSON++“。我想我还没有见过一个不支持JSON的OData实现,尽管如果没有指定JSON,很多都会用到Atom。所以,当使用JSON与OData交互时,有没有什么不是“纯粹的REST”呢?

因此,在OData世界中,我看到了两种与Redis交互的有趣方法。为Redis构建一个OData前端是可能的,甚至是很有趣的。我想这不会是微不足道的,但这应该是可能的。我不知道有人在做这件事,但可能有。例如,有一个OData提供者为Node.js服务,也许有人为Redis做了些什么。

但是,即使使用股票红皮书,它也应该只是一个使用OData URL作为Redis键的问题(无论如何,您似乎都倾向于使用它)--在查询级别缓存结果。这似乎就是你在你的例子中所说明的。由于您正在缓存数据,因此您可能希望在插入一个条目后,使用EXPIRE命令管理缓存结果的生存期。如果你想得到真正的幻想,你可以看看策略,预先填充红色缓存。

您提到了更细粒度地使用redis的可能性--因此需要解析查询等等。当然,您可以在实体级别使用redis缓存,并在其之上完全实现所有Odata。就我个人而言,我不确定这是否值得这么复杂。我喜欢在查询结果粒度上使用redis的想法。

对您的问题的简短回答是:使用REST/JSON+Redis可以完成的任何事情,都可以使用OData+Redis完成。价值支柱是一样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22793609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档