文章目录
-
- [✅ 一、准备工作:启用 EPEL 仓库](#✅ 一、准备工作:启用 EPEL 仓库)
-
- [▶ CentOS 7](#▶ CentOS 7)
- [▶ CentOS 8 / Stream / Rocky Linux 8 / AlmaLinux 8](#▶ CentOS 8 / Stream / Rocky Linux 8 / AlmaLinux 8)
- [▶ CentOS 9 / Rocky Linux 9 / AlmaLinux 9](#▶ CentOS 9 / Rocky Linux 9 / AlmaLinux 9)
- [✅ 二、安装 Memcached 服务端和客户端工具](#✅ 二、安装 Memcached 服务端和客户端工具)
- [✅ 三、启动并设置开机自启](#✅ 三、启动并设置开机自启)
- [✅ 四、配置 Memcached(可选但推荐)](#✅ 四、配置 Memcached(可选但推荐))
-
- 常用参数说明:
- [🔒 安全建议(生产环境必看):](#🔒 安全建议(生产环境必看):)
-
- [✅ 正确做法:仅监听本地或内网 IP](#✅ 正确做法:仅监听本地或内网 IP)
- [✅ 五、验证安装是否成功](#✅ 五、验证安装是否成功)
-
- [方法 1:检查进程和端口](#方法 1:检查进程和端口)
- [方法 2:使用 telnet 测试(需安装 telnet)](#方法 2:使用 telnet 测试(需安装 telnet))
- [方法 3:使用 `memstat` 工具(来自 libmemcached)](#方法 3:使用
memstat工具(来自 libmemcached))
- [✅ 六、常用操作命令](#✅ 六、常用操作命令)
- [✅ 七、开发语言客户端示例(快速测试)](#✅ 七、开发语言客户端示例(快速测试))
-
- [Python(需安装 python-memcached)](#Python(需安装 python-memcached))
- [PHP(需安装 php-pecl-memcached)](#PHP(需安装 php-pecl-memcached))
- [🛡️ 安全加固总结(重要!)](#🛡️ 安全加固总结(重要!))
- [📌 总结](#📌 总结)
在 CentOS 系统(包括 CentOS 7、8、9 或 Rocky/AlmaLinux)上安装 Memcached,推荐使用 官方 EPEL 仓库 + 系统包管理器 的方式,简单、稳定、自动处理依赖(如 libevent)。以下是详细步骤:
✅ 一、准备工作:启用 EPEL 仓库
Memcached 不在 CentOS 默认仓库中,需先启用 EPEL(Extra Packages for Enterprise Linux)。
▶ CentOS 7
bash
sudo yum install -y epel-release
▶ CentOS 8 / Stream / Rocky Linux 8 / AlmaLinux 8
bash
sudo dnf install -y epel-release
▶ CentOS 9 / Rocky Linux 9 / AlmaLinux 9
bash
sudo dnf install -y epel-release
✅ 验证是否启用成功:
bashyum repolist enabled | grep epel # CentOS 7 dnf repolist enabled | grep epel # CentOS 8/9
✅ 二、安装 Memcached 服务端和客户端工具
bash
# CentOS 7
sudo yum install -y memcached libmemcached
# CentOS 8/9 及衍生版
sudo dnf install -y memcached libmemcached
说明:
memcached:服务端程序libmemcached:包含命令行工具(如memstat,memcp等)和 C 客户端库
💡 如果你只需要服务端,可只装
memcached;若需调试工具,建议一起安装。
✅ 三、启动并设置开机自启
bash
# 启动服务
sudo systemctl start memcached
# 设置开机自启
sudo systemctl enable memcached
# 查看状态
sudo systemctl status memcached
正常应显示 active (running)。
✅ 四、配置 Memcached(可选但推荐)
默认配置文件路径:/etc/sysconfig/memcached
编辑配置:
bash
sudo vi /etc/sysconfig/memcached
默认内容类似:
ini
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
常用参数说明:
| 参数 | 说明 | 建议值 |
|---|---|---|
CACHESIZE |
分配内存(MB) | 根据服务器调整,如 256 |
MAXCONN |
最大并发连接数 | 2048 或更高 |
OPTIONS |
额外启动参数 | 见下方 |
🔒 安全建议(生产环境必看):
默认 Memcached 监听所有 IP(0.0.0.0)且无认证,极易被攻击(如 DDoS 反射放大攻击)!
✅ 正确做法:仅监听本地或内网 IP
修改 /etc/sysconfig/memcached 中的 OPTIONS:
ini
OPTIONS="-l 127.0.0.1,::1" # 仅允许本机访问(最安全)
# 或
OPTIONS="-l 192.168.1.100" # 仅监听内网某 IP
⚠️ 切勿暴露 11211 端口到公网!
保存后重启服务:
bash
sudo systemctl restart memcached
✅ 五、验证安装是否成功
方法 1:检查进程和端口
bash
ps aux | grep memcached
ss -tulnp | grep 11211
应看到:
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN ... memcached
方法 2:使用 telnet 测试(需安装 telnet)
bash
# 安装 telnet(如未安装)
sudo yum install -y telnet # CentOS 7
sudo dnf install -y telnet # CentOS 8/9
# 连接测试
telnet 127.0.0.1 11211
输入以下命令:
stats
quit
如果返回类似:
STAT pid 1234
STAT uptime 100
STAT curr_connections 1
...
END
说明 Memcached 正常工作!
方法 3:使用 memstat 工具(来自 libmemcached)
bash
memstat --servers=127.0.0.1
✅ 六、常用操作命令
| 操作 | 命令 |
|---|---|
| 启动 | sudo systemctl start memcached |
| 停止 | sudo systemctl stop memcached |
| 重启 | sudo systemctl restart memcached |
| 查看日志 | journalctl -u memcached -f |
| 查看配置 | cat /etc/sysconfig/memcached |
✅ 七、开发语言客户端示例(快速测试)
Python(需安装 python-memcached)
python
import memcache
mc = memcache.Client(['127.0.0.1:11211'])
mc.set("test_key", "Hello Memcached!")
print(mc.get("test_key")) # 输出: Hello Memcached!
PHP(需安装 php-pecl-memcached)
php
<?php
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
$mc->set("test", "OK");
echo $mc->get("test"); // 输出: OK
?>
🛡️ 安全加固总结(重要!)
-
禁止公网访问 :通过
-l 127.0.0.1限制监听地址 -
防火墙限制 (如必须内网访问):
bashsudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="11211" protocol="tcp" accept' sudo firewall-cmd --reload -
不要存储敏感数据:Memcached 无加密、无认证
-
定期监控内存和命中率:避免缓存雪崩/穿透
📌 总结
| 步骤 | 命令 |
|---|---|
| 1. 启用 EPEL | sudo yum/dnf install epel-release |
| 2. 安装 Memcached | sudo yum/dnf install memcached libmemcached |
| 3. 配置安全监听 | 修改 /etc/sysconfig/memcached → OPTIONS="-l 127.0.0.1" |
| 4. 启动服务 | sudo systemctl enable --now memcached |
| 5. 验证 | telnet 127.0.0.1 11211 + stats |
✅ 按照以上步骤,你可以在 CentOS 系统上安全、高效地部署 Memcached 缓存服务。