linux 安装 memcached 推荐用 apt/yum 包管理器,仅需特定版本或 sasl 认证时才源码编译;务必先安装 libevent 开发包,注意配置文件路径与语法(如 -l 非 -i)、监听地址、资源限制及验证方法。

memcached 在 Linux 上装得快不快,取决于你用包管理器还是源码编译——绝大多数场景直接用 apt 或 yum 装就行,既省事又安全;只有当你需要特定版本、或要启用 SASL 认证时,才值得折腾源码。
先装 libevent,否则 memcached 启动就失败
memcached 依赖 libevent 处理异步 I/O,没它连进程都拉不起来。常见报错是:error while loading shared libraries: libevent-2.1.so.7: cannot open shared object file。
- Ubuntu/Debian:运行
dpkg -l | grep libevent,若无输出或版本太老(如只有 1.4.x),执行sudo apt install -y libevent-dev(注意是libevent-dev,不是libevent单独包) - CentOS/RHEL:运行
rpm -qa | grep libevent,缺失或过旧时执行sudo yum install -y libevent libevent-devel(RHEL 8+ 改用dnf) - 别只装
libevent运行时库——源码编译必须有libevent-devel提供的头文件,否则./configure直接报错找不到 event.h
用包管理器安装,但注意配置文件路径和默认行为
Ubuntu/Debian 默认配置文件是 /etc/default/memcached,而 CentOS/RHEL 是 /etc/sysconfig/memcached 或直接读 /etc/memcached.conf。装完不改配置,很可能服务压根不启动。
- Ubuntu/Debian:确认
/etc/default/memcached中ENABLED值为yes(大小写敏感),不是YES或True - CentOS/RHEL:检查
/etc/sysconfig/memcached中OPTIONS是否包含-l 127.0.0.1等参数;若为空,systemctl start memcached会静默失败 - 装完立刻验证:
systemctl is-active memcached应返回active;若报Unit memcached.service not found,说明包名错了(比如在 CentOS 上误装了memcached-server)
改 /etc/memcached.conf 时,语法错一个字母就静默失败
这个文件不支持 JSON、YAML 或环境变量,所有配置靠行首加 - 的命令行风格写法。写错参数名(比如把 -l 写成 -I)或漏空格,systemctl start 不报错,但服务起不来。
-
-m 64:分配 64MB 内存,别设太大——2GB 内存的 VPS 上设-m 2048很可能触发 OOM Killer 杀进程 -
-l 127.0.0.1,::1:逗号分隔多个地址;想外网访问,加-l 0.0.0.0,但必须同步关 UDP:-U 0,并配防火墙(如ufw allow 11211)防反射攻击 -
-c 1024:默认连接数偏小,高并发建议调到4096,同时补系统限制:echo 'memcached soft nofile 8192' >> /etc/security/limits.conf - 注释掉
-S(SASL)除非真有认证需求,否则启动卡在Failed to initialize SASL
验证不能只看端口通不通,得发协议指令
telnet 127.0.0.1 11211 成功只代表端口开着,不代表缓存可用。很多情况是监听地址配错(比如 -l 192.168.1.100),你却连 127.0.0.1,结果连上就断。
- 连上后输入
stats回车,应返回多行STAT key value(如STAT version 1.6.27);返回空或立即断开,基本就是配置或监听地址问题 - 查日志最准:
journalctl -u memcached -n 50 --no-pager,重点关注failed to set rlimit、can't bind或SASL init类错误 - 别忘了装调试工具:
libmemcached-tools(Ubuntu/Debian)或memcached-devel(RHEL),否则memstat、memcdump都用不了
-m 和 -c 的值不是越大越好,每个连接占内存、slab 分配有开销、OOM Killer 不讲情面——初值建议 -m 64 -c 512,再根据 stats 输出里的 curr_connections 和 evictions 慢慢调。











