Linux 系统中 Memcached 的安装与配置指南
Memcached 是一个高性能的分布式内存对象缓存系统,主要用于通过在内存中缓存数据和对象来减少对数据库的访问,从而提高动态 Web 应用的响应速度,本文将详细介绍在 Linux 系统中安装、配置和优化 Memcached 的步骤,帮助用户快速搭建高效的缓存服务。

Memcached 的安装
在开始配置之前,需要先安装 Memcached,根据 Linux 发行版的不同,安装方式也有所差异。
基于 Debian/Ubuntu 系统
在 Debian 或 Ubuntu 系统中,可以使用 apt 包管理器进行安装,首先更新软件包列表,然后执行安装命令:
sudo apt update sudo apt install memcached -y
安装完成后,可以通过以下命令验证 Memcached 是否运行:
systemctl status memcached
基于 Red Hat/CentOS 系统
在 Red Hat 或 CentOS 系统中,可以使用 yum 或 dnf 包管理器,以 CentOS 7 为例,执行以下命令:
sudo yum install memcached -y
安装后启动 Memcached 服务并设置开机自启:
sudo systemctl start memcached sudo systemctl enable memcached
Memcached 的基本配置
Memcached 的配置文件通常位于 /etc/memcached.conf(Linux 系统中),通过修改该文件,可以调整 Memcached 的运行参数,如监听地址、端口、内存大小等。
修改监听地址和端口
默认情况下,Memcached 监听所有网络接口(0.0.0)的 11211 端口,如果需要限制访问或修改端口,可以编辑配置文件:
-l 127.0.0.1 # 仅本地访问
-p 11212 # 修改端口为 11212
设置内存分配
Memcached 的内存使用量通过 -m 参数控制,默认值为 64MB,可根据服务器实际内存进行调整,分配 1GB 内存:
-m 1024
配置最大连接数
通过 -c 参数可以设置最大并发连接数,默认为 1024,如果应用场景需要更高的并发,可以适当增加该值:
-c 2048
启用或禁用 UDP 支持
默认情况下,Memcached 同时监听 TCP 和 UDP 端口,如果不需要 UDP 支持,可以添加以下参数:

-U 0 # 禁用 UDP
修改配置文件后,需重启 Memcached 服务使配置生效:
sudo systemctl restart memcached
Memcached 的高级优化
为了进一步提升 Memcached 的性能,可以根据实际需求进行高级优化。
调整内存管理策略
Memcached 使用 LRU(Least Recently Used)算法淘汰过期或较少使用的数据,可以通过 -M 参数禁止内存交换,确保数据仅保存在内存中:
-M # 禁止内存交换,当内存耗尽时返回错误
优化网络设置
在高并发场景下,可以调整 TCP 缓冲区大小以提高网络性能。
-t 4 # 启用 4 个线程处理连接
--listen-backlog=4096 # 设置连接队列长度
启用 SASL 认证(可选)
如果需要限制客户端访问,可以启用 SASL 认证,首先安装 SASL 依赖库:
sudo apt install libsasl2-modules -y # Debian/Ubuntu sudo yum install cyrus-sasl-devel -y # Red Hat/CentOS
然后修改 Memcached 配置文件,启用 SASL 认证:
-S # 启用 SASL 认证
Memcached 的安全配置
默认情况下,Memcached 没有身份验证机制,存在安全风险,建议采取以下措施增强安全性:
绑定本地地址
将 Memcached 绑定到 0.0.1,仅允许本地应用访问:
-l 127.0.0.1
配置防火墙规则
通过防火墙限制外部 IP 对 Memcached 端口的访问,使用 ufw(Ubuntu):
sudo ufw deny 11211/tcp
使用防火墙或代理层
在生产环境中,建议通过防火墙或 Nginx 反向代理作为 Memcached 的访问入口,并启用 IP 白名单。

Memcached 的监控与维护
使用 memcached-tool 监控
Memcached 自带 memcached-tool 工具,可用于查看统计信息:
memcached-tool 127.0.0.1:11211 stats
日志管理
默认情况下,Memcached 的日志输出到 syslog,可以通过配置文件自定义日志路径:
logfile /var/log/memcached.log
定期清理过期数据
Memcached 会自动清理过期数据,但在内存不足时,可以通过 flush_all 命令手动清空缓存(谨慎使用):
echo "flush_all" | nc 127.0.0.1 11211
常见问题与解决方案
内存不足错误
如果应用频繁返回 “out of memory” 错误,可尝试以下方法:
- 增加
-m参数的值,分配更多内存。 - 启用
-M参数,避免内存交换。
连接超时
如果客户端频繁遇到连接超时问题,可以:
- 增加
-c参数的值,提高最大连接数。 - 检查服务器防火墙或网络配置。
性能瓶颈
在高并发场景下,如果性能不佳,可以:
- 增加
-t参数的值,启用更多线程。 - 优化客户端代码,减少不必要的缓存操作。
Memcached 作为一种高效的内存缓存工具,在提升 Web 应用性能方面发挥着重要作用,通过合理的安装、配置和优化,可以充分发挥其性能优势,在实际应用中,需根据业务需求调整参数,并结合监控工具持续优化,以确保 Memcached 稳定高效运行,安全配置也不容忽视,尤其是在生产环境中,应严格限制访问权限,防止未授权访问。


















