c# – ASP.net MVC中的Azure Redis StackExchange.Redis Connect
我已经读过,为了连接到Azure Redis缓存,最好遵循以下做法:
private static ConnectionMultiplexer Connection { get { return LazyConnection.Value; } } private static readonly Lazy<ConnectionMultiplexer> LazyConnection = new Lazy<ConnectionMultiplexer>( () => { return ConnectionMultiplexer.Connect(connStinrg); }); 根据Azure Redis文档:
那么在我的ASP.net MVC应用程序中共享ConnectionMultiplexer的最佳实践是什么? 我也有服务,负责与应用程序通信,所以如果我想在服务内部与Redis通信,我应该将ControlMultiplexer的实例发送到控制器的服务,还是应该在我的所有服务中初始化它,或者? 你可以看到我在这里有点失落,所以请帮忙! 解决方法
文档是对的,你应该只有一个ConnectionMultiplexer实例并重用它.不要创建多个,建议它将是
shared and reused.
现在对于创建部分,它不应该在Controller或Global.asax中.通常,您应该拥有自己的RedisCacheClient类(可能实现一些ICache接口),该类使用内部的ConnectionMultiplexer私有静态实例,这就是您的创建代码所在的位置 – 正如您在问题中所写的那样. Lazy部分将推迟ConnectionMultiplexer的创建,直到第一次使用它为止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |