我正在寻找一个更好的最佳解决方案,可以取代AppFabricCache并提高我的ASP.Net-MVC应用程序的性能。
答案 0 :(得分:1)
根据Microsoft,Azure Cache(其Redis产品的名称)应该用于Azure上的所有开发,而不是AppFabric Cache。我认为这对Redis来说是一个相当不错的认可,如果您想将应用程序部署到Azure,这是唯一的替代方案。
也就是说,分布式缓存仅在特定情况下有助于提高性能:将应用程序部署到多机场时,需要缓存数据的一致性。如果您只有一台计算机或者要缓存只读查找数据,它实际上会伤害性能。网络调用总是比内存查找慢。
你还应该考虑,为什么你想取代AppFabric Cache?什么对你不起作用?如果更改为其他解决方案,则可能会遇到相同的问题。
例如,如果您在Web服务器上托管AppFabric或Memcached,则会出现始终的同步问题。在高流量时,Web服务器和缓存都使用大量CPU(和RAM)。这将导致问题,延迟请求,超时或......同步问题。 Redis避免使用这些,因为根本没有本地缓存 - 只有远程内存缓存集群。
如何在.NET中使用Redis有大量资源。其中很多都是指Azure Cache,但如果您想自己托管Redis,则可以使用相同的代码并只更改连接字符串。
例如,在Session state with Azure Redis cache中,唯一需要进行的更改是更改配置文件中服务器的DNS名称。文章How to Use Azure Redis Cache使用第三方Redis客户端连接到Azure Redis缓存。同样,您只需要更改主机名即可连接到内部部署的Redis服务器。