我想缓存以最大化响应时间和数据库使用率。我试图确定是否应该在新的.netcore服务API中使用csharp客户端或Redis或两者。在我看来,我应该只使用Redis。有人知道我是否应该出于某些原因同时使用两者? (可选)我是否应该仅使用服务客户端来处理缓存并忽略Redis?
答案 0 :(得分:1)
这两个库是不相关的,C# Service Clients使Typed API可以从.NET Apps访问您的服务,而ServiceStack.Redis提供Typed API可以从.NET Apps访问内存数据库中的Redis .NET。
您需要的资源取决于您的用例,如果您使用的是负载平衡的服务器,则建议不要使用像Redis这样的distributed caching provider,因此所有负载平衡的应用服务器都使用相同的分布式缓存和用户会话,如果您只使用一台服务器,那么使用分布式Redis缓存将不会像默认的“内存缓存”中那样有用。
C#.NET服务客户端没有内置的缓存,为了利用服务客户端中的缓存,您的服务将需要利用HTTP Caching来返回HTTP缓存原始指令,以维护“客户端缓存”使用Cache Aware Service Clients时。
如果仅使用[CacheResponse(Duration)]属性或任何ToOptimizedResult*
API之类的“服务器缓存”功能,则缓存仅在对所有HTTP客户端透明的服务器上相同的“服务器缓存响应”。