Memcached

連接記憶體記憶體主機失敗!

  • January 31, 2019

我對 memcached 完全陌生!我在主機 A(Ip 192.168.1.102)中成功安裝並使用此命令啟動了 memcached

memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211

我還將這些條目添加到 iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 11211 -j ACCEPT

重啟iptables服務,監聽11211埠

telnet 也可以!

telnet localhost 11211

嘗試 127.0.0.1… 連接到本地主機。轉義字元是 ‘^]’。

但是我使用這個腳本 memcached_test.php 從主機 B(IP 192.168.1.103)連接到這個主機 A

<?php
$memcache = new Memcache;
$memcache->connect('192.168.1.102', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";

$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);
?>

當我在主機 B (192.168.1.103) 的伺服器中瀏覽此腳本時。我收到了這個錯誤

警告:Memcache::connect()

$$ memcache.connect $$:無法連接到 192.168.1.102:11211,第 3 行 /var/www/memcache_test.php 中的連接被拒絕 (111) 無法連接

請告訴我如何解決這個問題!

# memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211

您會注意到命令行中有“ -l 127.0.0.1”。這告訴 memcached只聽 lo 介面。如果你想從遠端機器訪問它,你需要刪除這部分命令行。

引用自:https://serverfault.com/questions/64007