CentOS 7 作为一款广泛使用的 Linux 发行版,为应用服务提供了稳定的运行环境,Memcached 是一款高性能的分布式内存缓存系统,常用于动态数据库驱动的网站以减轻数据库负载,本文将详细介绍在 CentOS 7 系统中安装、配置和优化 Memcached 的方法,帮助读者高效部署缓存服务。

安装 Memcached
在 CentOS 7 中,Memcached 可以通过 Yum 包管理器轻松安装,更新系统软件包列表以确保获取最新的稳定版本:
sudo yum update -y
执行以下命令安装 Memcached 及其依赖工具:
sudo yum install memcached -y
安装完成后,通过以下命令验证 Memcached 是否成功运行:
systemctl status memcached
若未启动,可使用 sudo systemctl start memcached 开启服务,并通过 sudo systemctl enable memcached 设置开机自启。
基本配置
Memcached 的配置文件位于 /etc/sysconfig/memcached,可通过编辑该文件调整关键参数,以下是常用配置项的说明:

- PORT:监听端口,默认为 11211,可根据需求修改。
- USER:运行 Memcached 的用户,默认为
memcached,建议保持默认以提升安全性。 - MAXCONN:最大连接数,默认为 1024,高并发场景可适当调高。
- CACHESIZE:内存分配大小,默认为 64MB,建议根据服务器内存设置(512MB 或 1GB)。
- OPTIONS:额外选项,如
-l 127.0.0.1限制本地访问,或-l 0.0.0.0允许远程访问(需配合防火墙规则)。
修改配置后,重启 Memcached 服务使生效:
sudo systemctl restart memcached
防火墙与安全设置
默认情况下,CentOS 7 的防火墙(firewalld)会阻止外部访问 Memcached 端口,若需远程连接,需开放 11211 端口:
sudo firewall-cmd --permanent --add-port=11211/tcp sudo firewall-cmd --reload
为增强安全性,建议仅允许特定 IP 访问,或在 OPTIONS 中绑定内网 IP,可通过 sudo chown memcached:memcached /var/run/memcached 确保权限正确。
性能优化
Memcached 的性能优化需结合硬件和应用场景:
- 内存分配:根据可用内存合理设置
CACHESIZE,避免过度占用系统资源。 - LRU 策略:默认使用 LRU(最近最少使用)算法,可通过
-M参数启用严格 LRU 模式(禁止内存交换)。 - slab 类调整:通过
memcached -vv查看 slab 分配情况,优化ITEM_SIZE_MAX参数以减少内存碎片。 - 多实例部署:高负载场景下,可运行多个 Memcached 实例并分散在不同端口,结合负载均衡提升吞吐量。
监控与维护
定期监控 Memcached 的运行状态对保障服务稳定性至关重要,可通过 stats 命令查看实时数据:

echo "stats" | nc localhost 11211
常用监控指标包括 curr_items(当前缓存项数)、evictions(淘汰次数)和 hit_rate(命中率),若命中率较低,需检查缓存策略或增大内存分配,建议定期清理过期数据,避免内存泄漏。
相关问答 FAQs
Q1:如何检查 Memcached 的缓存命中率?
A1:通过执行 echo "stats" | nc localhost 11211 命令,查看 get_hits(命中次数)和 cmd_get(总读取次数),计算公式为 hit_rate = (get_hits / cmd_get) * 100,若命中率低于 80%,可考虑调整缓存键的设计或增加内存容量。
Q2:Memcached 支持持久化存储吗?
A2:Memcached 默认不支持数据持久化,所有数据存储在内存中,服务重启后数据会丢失,若需持久化功能,可考虑结合 Redis 或使用第三方工具(如 Memcached Manager)定期备份数据至磁盘。