Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP连接和测试Memcached_Php_Memcached - Fatal编程技术网

用PHP连接和测试Memcached

用PHP连接和测试Memcached,php,memcached,Php,Memcached,在花了一些时间尝试在MAMP上设置Memcached后,我可能会遇到一些麻烦 在我的php信息文件中,它声明memcached并显示相关信息: 为了学习和使用Memcached,我使用了以下教程: 这是我遇到的第一个问题,这是连接到缓存服务器:使用他们所说的,似乎不起作用 define('MEMCACHED_HOST', '127.0.0.1'); define('MEMCACHED_PORT', '11211'); $memcache = new Memcache; $cacheAvail

在花了一些时间尝试在MAMP上设置Memcached后,我可能会遇到一些麻烦

在我的php信息文件中,它声明memcached并显示相关信息:

为了学习和使用Memcached,我使用了以下教程:

这是我遇到的第一个问题,这是连接到缓存服务器:使用他们所说的,似乎不起作用

define('MEMCACHED_HOST', '127.0.0.1');
define('MEMCACHED_PORT', '11211');
$memcache = new Memcache;
$cacheAvailable = $memcache->connect(MEMCACHED_HOST, MEMCACHED_PORT);
我尝试将127.0.0.1更改为localhost,但没有成功。我的第一个想法是将memcache更改为memcached。。。这仍然不起作用


因此,我只想弄清楚如何连接和测试使用Memcached建立的连接。Memcache和Memcached之间是否存在不同的连接?或者我把事情安排错了?任何建议或指导都非常感谢:)

首先,我想您应该尝试连接telnet到memcahed

telnet 127.0.0.1 11211
以下是一些关于支持的命令的文档,假设您能够连接:

如果你不能远程登录到它,那么你的设置是坏的,或者你可能有防火墙阻止它

PHP有两个客户端,和。我建议使用memcached(我不知道为什么他们把客户端命名为守护进程,这让我发疯)。较新的memcached客户端支持CAS操作和一些其他较新的功能


不过,您使用的连接代码看起来更像memcache。有了memcached,您可能需要设置一个服务器池或直接使用。

我找到了无法连接到memcached的原因,并认为如果有人遇到与我相同的问题,我会发布答案

解决方案是在终端中键入以下内容:

memcached -d

我发现memcached似乎需要打开。上面的代码就是这样做的。虽然每次你重启你的机器,你都必须按照我刚才说的去做。我仍然在寻找一个自动启动memcached的答案。如果我遇到它,我会更新这篇文章。

谢谢@ficuscr的回复,这是否意味着连接将是$m=newmemcached()$m->addServer(telnet,'localhost',11211)?我仍然有点困惑,因为似乎所有关于toos如何与memcache相关的教程。。。例如,感谢您的帮助。是的,是的,大多数教程可能都会讨论较旧的memcache客户端。其实没什么不同。将jsut代码抽象一点并使用任一客户端都很容易。不管怎么说,都有文档记录:只要知道哪一个是哪一个:)当我做$m=newmemcached()时$m->addServer(telnet,'localhost',11211);给了我一个警告错误:Memcached::addServer()期望参数2是长的,字符串在第5行的/Applications/MAMP/htdocs/app/mem.php中给出。。。太令人沮丧了。无论如何,我可以使用Memcache,即使我已经安装了Memcache?
telnet
是一个工具,我建议使用它来确保Memcached服务正在运行并且可以访问。您只需要:$m->addServer('localhost',11211);我相信telnet是针对Windows环境的,我可能应该声明我使用的是Mac。我已经看过手册了。。。我尝试了下面的代码只是为了测试一切是否正常,但由于某些原因,没有任何结果。。。这只是一个空白页:-S$mc=newmemcached()$mc->addServer(“localhost”,11211)$mc->set(“foo”、“Hello World”);echo$mc->get(“foo”);简短回答:MemcacheD deamon必须运行,仅仅将模块安装到PHP是不够的。对于那些看到这一点并希望自动启动它的人,您需要将其添加到
/etc/init.d/MemcacheD