代码之家  ›  专栏  ›  技术社区  ›  Red Riding Hood

与Azure消费函数一起使用的Redis连接最佳实践

  •  1
  • Red Riding Hood  · 技术社区  · 6 年前

    Redis最佳实践推荐使用长寿命ConnectionMultiplexer。然而,我想在一个azure消费函数中使用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个连接,而不是重用单个连接?

    手动为每个函数创建/处理连接是否更安全?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Mikhail Shilkov    6 年前

    即使单个函数的执行可能只需要几秒钟,函数 实例 (服务器)正在被多个请求重用。实际上,对于源源不断的传入请求,每个实例的寿命都很长(几分钟到几小时)。

    当一个实例宕机时,你的应用程序域将被回收,因此到Redis的连接将被终止。

    我建议你继续你引用的代码。