在 CentOS 系统(包括 CentOS 7、8、9 或 Rocky/AlmaLinux)上安装 Memcached,推荐使用 官方 EPEL 仓库 + 系统包管理器 的方式,简单、稳定、自动处理依赖(如 libevent)。以下是详细步骤:


✅ 一、准备工作:启用 EPEL 仓库

Memcached 不在 CentOS 默认仓库中,需先启用 EPEL(Extra Packages for Enterprise Linux)

▶ CentOS 7

sudo yum install -y epel-release

▶ CentOS 8 / Stream / Rocky Linux 8 / AlmaLinux 8

sudo dnf install -y epel-release

▶ CentOS 9 / Rocky Linux 9 / AlmaLinux 9

sudo dnf install -y epel-release

✅ 验证是否启用成功:

yum repolist enabled | grep epel    # CentOS 7
dnf repolist enabled | grep epel   # CentOS 8/9

✅ 二、安装 Memcached 服务端和客户端工具

# CentOS 7
sudo yum install -y memcached libmemcached
# CentOS 8/9 及衍生版
sudo dnf install -y memcached libmemcached

说明:

  • memcached:服务端程序
  • libmemcached:包含命令行工具(如 memstat, memcp 等)和 C 客户端库

如果你只需要服务端,可只装 memcached;若需调试工具,建议一起安装。


✅ 三、启动并设置开机自启

# 启动服务
sudo systemctl start memcached
# 设置开机自启
sudo systemctl enable memcached
# 查看状态
sudo systemctl status memcached

正常应显示 active (running)


✅ 四、配置 Memcached(可选但推荐)

默认配置文件路径:/etc/sysconfig/memcached

编辑配置:

sudo vi /etc/sysconfig/memcached

默认内容类似:

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

OPTIONS="-l 127.0.0.1,::1"          # 仅允许本机访问(最安全)
# 或
OPTIONS="-l 192.168.1.100"          # 仅监听内网某 IP

⚠️ 切勿暴露 11211 端口到公网!

保存后重启服务:

sudo systemctl restart memcached

✅ 五、验证安装是否成功

方法 1:检查进程和端口

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)

# 安装 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)

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)

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
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
$mc->set("test", "OK");
echo $mc->get("test"); // 输出: OK
?>

️ 安全加固总结(重要!)

  1. 禁止公网访问:通过 -l 127.0.0.1 限制监听地址
  2. 防火墙限制(如必须内网访问):
    sudo 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
  3. 不要存储敏感数据:Memcached 无加密、无认证
  4. 定期监控内存和命中率:避免缓存雪崩/穿透

总结

步骤命令
1. 启用 EPELsudo yum/dnf install epel-release
2. 安装 Memcachedsudo yum/dnf install memcached libmemcached
3. 配置安全监听修改 /etc/sysconfig/memcachedOPTIONS="-l 127.0.0.1"
4. 启动服务sudo systemctl enable --now memcached
5. 验证telnet 127.0.0.1 11211 + stats

✅ 按照以上步骤,你可以在 CentOS 系统上安全、高效地部署 Memcached 缓存服务。