在PHP中关闭外部连接(例如memcached、redis)是否是一种好的做法?

在PHP中关闭外部连接(例如memcached、redis)是否是一种好的做法?,php,connection,redis,memcached,Php,Connection,Redis,Memcached,我的Memcached服务器和Redis服务器与我的web服务器不同,因此在PHP脚本中,我必须连接到这两个外部ip 我担心的是,我的web服务器最好保持与两个memcached/redis服务器的连接。因此,当新用户请求一个php页面时,web服务器不需要一次又一次地连接到memcached/redis $redis=新的redis(); $redis->close(); (或与memcached和mysql类似) 在这种情况下,我不确定close到底意味着什么。这是否意味着在执行特定的php

我的Memcached服务器和Redis服务器与我的web服务器不同,因此在PHP脚本中,我必须连接到这两个外部ip

我担心的是,我的web服务器最好保持与两个memcached/redis服务器的连接。因此,当新用户请求一个php页面时,web服务器不需要一次又一次地连接到memcached/redis

$redis=新的redis(); $redis->close(); (或与memcached和mysql类似)


在这种情况下,我不确定close到底意味着什么。这是否意味着在执行特定的php脚本时与redis服务器保持紧密连接?鉴于我之前的担忧,调用close实际上会影响我的性能吗?

实际上,在“关闭”与服务器的实际连接时不会发生任何事情。这实际上是应用程序内部的内存管理问题,而不是服务器之间的网络/基础设施问题。考虑有一个运行程序的情况,该程序可以实例化任意数量的对象。close()方法允许销毁和垃圾收集这些对象。如果您创建了数百个实例而没有在它们完成时关闭它们,那么您的应用程序中就会出现内存泄漏。

如果您始终只有一个连接,并且您想知道是否在每次需要使用时关闭并重新打开此连接,请放心,这就是连接池的用途。更多信息。我知道Predis使用连接池。不确定Php使用什么库与Memcached进行接口。

当您使用完资源后,关闭这些资源总是一个好主意,它会使与之相关的资源可用于服务其他请求。