目录
1. Memcached 连接方式
Memcached 主要通过 TCP 连接 或 Unix Socket 连接 进行通信,默认端口为 11211
,本地连接 IP 地址为 127.0.0.1
。
连接方式包括:
- Telnet 连接(手动调试)
- 编程语言客户端(PHP、Python、Java、Node.js 等)
- 远程连接(需修改 Memcached 配置)
2. 使用 Telnet 连接
Memcached 运行后,可使用 telnet
进行基本连接测试:
telnet 127.0.0.1 11211
连接成功后,输入 stats
命令获取服务器状态:
stats
返回示例:
STAT pid 12345
STAT uptime 3600
STAT curr_connections 5
...
END
若 telnet
命令不可用,可使用 nc
(Netcat)代替:
echo "stats" | nc 127.0.0.1 11211
3. 不同编程语言的连接示例
3.1 PHP 连接 Memcached
安装 Memcached 扩展(如果未安装):
sudo apt install php-memcached # Ubuntu/Debian
sudo yum install php-pecl-memcached # CentOS/RHEL
PHP 代码示例:
<?php
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211);
// 存储数据
$memcached->set("key", "Hello Memcached!", 60);
// 获取数据
echo $memcached->get("key");
?>
3.2 Python 连接 Memcached
安装 pymemcache
或 python-memcached
库:
pip install pymemcache
Python 代码示例:
from pymemcache.client import base
client = base.Client(('127.0.0.1', 11211))
# 存储数据
client.set('key', 'Hello Memcached!')
# 获取数据
print(client.get('key').decode('utf-8'))
3.3 Java 连接 Memcached
添加 Spymemcached 依赖(Maven):
<dependency>
<groupId>net.spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.12.3</version>
</dependency>
Java 代码示例:
import net.spy.memcached.MemcachedClient;
import java.io.IOException;
import java.net.InetSocketAddress;
public class MemcachedTest {
public static void main(String[] args) throws IOException {
MemcachedClient client = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
// 存储数据
client.set("key", 3600, "Hello Memcached!");
// 获取数据
System.out.println(client.get("key"));
client.shutdown();
}
}
3.4 Node.js 连接 Memcached
安装 memcached
依赖:
npm install memcached
Node.js 代码示例:
const Memcached = require('memcached');
const memcached = new Memcached("127.0.0.1:11211");
// 存储数据
memcached.set("key", "Hello Memcached!", 60, function(err) {
if (err) console.error(err);
});
// 获取数据
memcached.get("key", function(err, data) {
if (err) console.error(err);
console.log(data);
});
4. 远程连接 Memcached
默认情况下,Memcached 仅允许本地访问 (127.0.0.1
)。若需远程访问,请执行以下步骤:
4.1 修改 Memcached 配置
编辑 /etc/memcached.conf
(Ubuntu/Debian)或 /etc/sysconfig/memcached
(CentOS/RHEL):
-l 0.0.0.0
或在 CentOS/RHEL 中,修改 /etc/sysconfig/memcached
:
OPTIONS="-l 0.0.0.0"
然后重启 Memcached:
sudo systemctl restart memcached
4.2 配置防火墙
如果使用 iptables,执行以下命令允许特定 IP 访问 Memcached:
sudo iptables -A INPUT -p tcp --dport 11211 -s 你的IP地址 -j ACCEPT
如果使用 firewalld(CentOS 7+):
sudo firewall-cmd --add-port=11211/tcp --permanent
sudo firewall-cmd --reload
发表回复