Redis最佳做法建议使用寿命长的ConnectionMultiplexer。但是,我想在天蓝色的消耗函数中使用Redis,该函数可能只存在几秒钟(但运行多次)。
我想知道我是否有这样的代码:
private static Lazy<ConnectionMultiplexer> lazyRedisConnection = new Lazy<ConnectionMultiplexer>(() =>
{
string cacheConnection = ConfigurationManager.AppSettings["RedisKey"].ToString();
return ConnectionMultiplexer.Connect(cacheConnection);
});
public static ConnectionMultiplexer RedisConnection
{
get
{
return lazyRedisConnection.Value;
}
}
在运行的Azure消费功能上,例如10000次由于Azure消费功能的工作方式,实际上会创建10000个连接,而不是重用一个连接?
按功能手动创建/设置连接会更安全吗?
答案 0 :(得分:4)
即使单个函数执行可能只花费几秒钟,但函数 instance (服务器)仍可用于多个请求。实际上,由于传入请求源不断,每个实例的寿命很长(几分钟到几小时)。
应该在同一实例上执行的调用之间重用数据库连接。
静态字段被初始化一次,然后被重用于多次执行,因此您的代码将不会创建10000个连接,但可能会创建1个或2个或3个连接,具体取决于比例控制器将创建多少个实例。
当实例发生故障时,您的App Domain将被回收,因此与Redis的连接将被终止。
我建议您继续引用的代码。