我正在使用将..NET Core添加到Redis连接StackExchange.Redis
,它当前看起来像这样:
public static IServiceCollection AddRedisMultiplexer(
this IServiceCollection services,
Func<ConfigurationOptions> getOptions = null)
{
// Get the options or assume localhost, as these will be set in Startup.ConfigureServices assume they won't change
var options = getOptions?.Invoke() ?? ConfigurationOptions.Parse("localhost");
// The Redis is a singleton, shared as much as possible.
return services.AddSingleton<IConnectionMultiplexer>(provider => ConnectionMultiplexer.Connect(options));
}
然后在 Startup
public void ConfigureServices(IServiceCollection services)
{
services.AddRedisMultiplexer(() =>
ConfigurationOptions.Parse(Configuration["ConnectionStrings:Redis"]));
...
这意味着我可以IConnectionMultiplexer
在任何地方进行依赖注入。
我的问题是:ConnectionMultiplexer
是可以重复使用,所以我用AddSingleton
,以保持一个实例整个应用程序。但是我也可以AddScoped
在请求期间使用一个。哪个更好?为什么?
该应用程序的预期负载是多少?如果您有很多并发性,我认为使用AddScoped
将意味着为每个请求启动和关闭连接的大量不必要的负担。
同样,恕我直言,这些观察结果表明您应该使用 AddSingleton
(…)很少会短暂使用ConnectionMultiplexer,因为这种想法是要重用此对象。
Redis的另一个常见用途是作为发布/订阅消息分发工具。这也很简单,并且
在连接失败的情况下,ConnectionMultiplexer将处理重新订阅所请求通道的所有详细信息。
此外,您将节省仅具有ConnectionMultiplexer
(IMHO)实例的内存。
在angular2中,假设我有一个类和一个类,它们具有相同的属性/成员和方法。如何初始化类? 服务 其中一个子类要扩展类:
问题内容: 已经发布了几个问题,其中包括有关依赖项注入的特定问题,例如何时使用它以及支持它的框架。然而, 什么是依赖项注入?何时/为什么/不应该使用它? 问题答案: 依赖注入 将依赖传递给其他 对象 或 框架 (依赖注入器)。 依赖注入使测试更加容易。注入可以通过 构造函数 完成。 其构造函数如下: 问题 :如果涉及复杂的任务,例如磁盘访问或网络访问,则 很难 对其进行单元测试。程序员必须进行模拟
问题内容: 我目前使用nodejs创建一些实验项目。我已经用Spring编写了很多Java EE Web应用程序,并赞赏那里的依赖注入的简易性。 现在我很好奇:如何使用节点进行依赖注入?或者:我什至需要吗?是否存在替代概念,因为编程风格不同? 到目前为止,我在谈论简单的事情,例如共享数据库连接对象,但是我还没有找到一个令我满意的解决方案。 问题答案: 简而言之,您不需要像C#/ Java中那样的依
考虑下面的代码: 上面的代码是一个表示一个汉堡包类。 该类假设汉堡包括Bun, Patty 和 Toppings。 该类还负责制作Bun, Patty 和 Toppings。 这是一件坏事。 如果需要素食汉堡怎么办? 一个天真的方法可能是: 好吧,这有点不同,它在某些方面更灵活,但它仍然相当脆弱。 如果Patty构造函数改变以允许新的功能会发生什么? 整个汉堡包类必须更新。 事实上,任何时候任何这
我有两门课和。规则如下: 每个作业都有一个数字标识符。 每个作业有10个对应的任务。 每个任务都有一个数字标识符。 一个没有就不能存在。 我试图建立这两个类的类图。因为任务不能没有作业,所以我认为这是一个组合,这就是我如何构建类图: 但现在我感到困惑的是,如果这种关联实际上是依赖关系: 在这种情况下,我如何知道关系是组合关系还是依赖关系? 我已经按照Thomas Kilian的建议在类图中修复了组
我一直在尝试将< code>webdriver注入到步骤中。我已经使用了这个说明,效果很好。 想法是将WebDriver作为服务注入到steps类中。在初始步骤,您需要添加以下依赖项。 依赖关系注入涉及三个主要类。在这里,我们逐一介绍它们。 BaseUtil BaseUtil是具有WebDriverof Selenium属性的类。这个类非常简单: 钩 钩子类包含之前和之后的