在PHP中关闭外部连接(例如memcached,redis)是一个好习惯吗?

时间:2013-06-11 15:22:26

标签: php connection redis memcached

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

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

$ redis = new Redis(); $ redis - >关(); (或类似于memcached和mysql)

我不确定在这种情况下实际意味着什么。是否意味着与redis服务器紧密连接以执行此特定的PHP脚本?考虑到我以前的担忧,实际上会打电话会阻碍我的表现吗?

2 个答案:

答案 0 :(得分:1)

从服务器“关闭”实际连接并没有真正发生。这实际上是应用程序中的内存管理问题,而不是服务器之间的网络/基础结构问题。考虑一下你有一个可以实例化任意数量对象的运行程序的情况。 close()方法允许破坏这些对象并收集垃圾。如果你创建了数百个实例而没有关闭它们,那么你的应用程序中最终会出现内存泄漏。

答案 1 :(得分:1)

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