Php 在获得值后,是否应该关闭与Memcache的所有连接?

Php 在获得值后,是否应该关闭与Memcache的所有连接?,php,performance,optimization,locking,memcached,Php,Performance,Optimization,Locking,Memcached,我在服务器上使用Memcache来存储一些有用的查询结果。我的服务器性能有问题。我开始调查,这是锁的问题 我的第一个猜测是Memcache 我是这样使用它的: $memcacheRT = new Memcache; if (not open) $memcacheRT->connect('localhost', 11221) or die ("Could not connect"); get some values from memcache() //no

我在服务器上使用Memcache来存储一些有用的查询结果。我的服务器性能有问题。我开始调查,这是锁的问题

我的第一个猜测是Memcache

我是这样使用它的:

    $memcacheRT = new Memcache;  
    if (not open) $memcacheRT->connect('localhost', 11221) or die ("Could not connect");
    get some values from memcache()
    //not closing
我第一次打开memcache的连接时,我需要从那里获取一些数据,并将其保持打开状态,直到脚本结束,以防我需要更多的内容,并且不希望每次都打开它。它将在脚本结束时自动关闭,对吗

那么这种方法正确吗? 它是否可以作为并发页面请求之间的锁定发生?一个本地端口(11221)可以有多少个连接?
如果每次获取值后都将其更改为关闭,则每次打开和关闭连接时是否会影响性能?

尝试使用永久性memcache连接

您应该能够保持连接打开而不会受到惩罚,只需确保您没有使用任何试图查询板(列表、键)上的元信息的方法,因为这些查找会在查询期间锁定Memcache。您如何确定这是一个锁定问题?我怀疑memcache是你的瓶颈,除非你滥用它(每负载1000个>请求)。您可能希望安装Xdebug并尝试查找花费最多时间的内容。@tomasz-检查您的查询-如果没有弄错,您将锁定表而不是锁定memcache
,它将在脚本末尾自行关闭?
可能,但为什么要依赖于此?在自己之后进行清理始终是一种很好的编程实践。是的,锁/瓶颈很有可能位于数据库端。特别是如果你使用的是MySQL之类的东西。