【发布时间】:2018-12-02 16:32:13
【问题描述】:
我想要缓存以最大化响应时间和数据库使用率。我正在尝试确定是否应该在我的新 .netcore 服务 API 中使用 csharp 客户端或 Redis 或两者。在我看来,我应该只使用 Redis。任何人都知道我是否应该出于某种原因同时使用两者?或者,我是否应该只使用服务客户端来处理缓存并忽略 Redis?
【问题讨论】:
标签: c# servicestack servicestack.redis
我想要缓存以最大化响应时间和数据库使用率。我正在尝试确定是否应该在我的新 .netcore 服务 API 中使用 csharp 客户端或 Redis 或两者。在我看来,我应该只使用 Redis。任何人都知道我是否应该出于某种原因同时使用两者?或者,我是否应该只使用服务客户端来处理缓存并忽略 Redis?
【问题讨论】:
标签: c# servicestack servicestack.redis
这两个库是不相关的,C# Service Clients 使 Typed API 能够从 .NET 应用程序访问您的服务,而 ServiceStack.Redis 提供 Typed API 以从 .NET 访问内存数据库中的 Redis。
您需要什么取决于您的用例,如果您使用负载平衡服务器而不是使用像 Redis 这样的 distributed caching provider,则建议所有负载平衡应用服务器使用相同的分布式缓存和用户会话,如果你只使用一个服务器而不是使用分布式 Redis 缓存不会像默认的内存缓存那样有用。
C# .NET 服务客户端没有任何内置缓存,为了在服务客户端中使用缓存,您的服务需要使用HTTP Caching,它返回 HTTP 缓存原始指令,在使用时维护“客户端缓存” Cache Aware Service Clients.
如果您只使用“服务器缓存”功能,如 [CacheResponse(Duration)] 属性或任何 ToOptimizedResult* API,则缓存仅在服务器上,它对所有访问相同“服务器”的任何 HTTP 客户端都是透明的缓存响应”。
【讨论】: