Memcached安装与配置 #
一、Linux安装 #
1.1 Ubuntu/Debian安装 #
bash
# 更新包列表
sudo apt update
# 安装Memcached
sudo apt install memcached
# 安装客户端工具
sudo apt install libmemcached-tools
# 启动服务
sudo systemctl start memcached
# 设置开机自启
sudo systemctl enable memcached
# 查看状态
sudo systemctl status memcached
1.2 CentOS/RHEL安装 #
bash
# 安装EPEL源
sudo yum install epel-release
# 安装Memcached
sudo yum install memcached
# 安装客户端工具
sudo yum install libmemcached
# 启动服务
sudo systemctl start memcached
# 设置开机自启
sudo systemctl enable memcached
# 查看状态
sudo systemctl status memcached
1.3 源码编译安装 #
bash
# 安装依赖
sudo apt install build-essential libevent-dev
# 下载源码
wget https://memcached.org/files/memcached-1.6.29.tar.gz
# 解压
tar -xzf memcached-1.6.29.tar.gz
cd memcached-1.6.29
# 配置
./configure --prefix=/usr/local/memcached
# 编译
make
# 安装
sudo make install
# 启动
/usr/local/memcached/bin/memcached -d -m 256 -u root -p 11211
二、Windows安装 #
2.1 下载安装 #
text
1. 下载Memcached Windows版本
https://github.com/jefyt/memcached-windows/releases
2. 解压到指定目录
C:\memcached\
3. 安装为Windows服务
以管理员身份运行CMD:
cd C:\memcached
memcached.exe -d install
4. 启动服务
memcached.exe -d start
5. 停止服务
memcached.exe -d stop
6. 卸载服务
memcached.exe -d uninstall
2.2 Windows配置 #
text
修改注册表配置:
1. 打开注册表编辑器
regedit
2. 定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached
3. 修改ImagePath值
"C:\memcached\memcached.exe" -d runservice -m 512 -p 11211
4. 重启服务
net stop memcached
net start memcached
三、macOS安装 #
3.1 Homebrew安装 #
bash
# 安装Memcached
brew install memcached
# 启动服务
brew services start memcached
# 停止服务
brew services stop memcached
# 重启服务
brew services restart memcached
# 查看服务状态
brew services list
3.2 手动启动 #
bash
# 前台启动
memcached -p 11211 -m 64
# 后台启动
memcached -d -p 11211 -m 64
# 指定用户
memcached -d -p 11211 -m 64 -u nobody
四、配置详解 #
4.1 配置文件 #
bash
# Ubuntu/Debian配置文件位置
/etc/memcached.conf
# CentOS/RHEL配置文件位置
/etc/sysconfig/memcached
4.2 配置参数详解 #
bash
# /etc/memcached.conf
# 内存大小(MB)
-m 64
# 监听端口
-p 11211
# 监听IP地址
-l 127.0.0.1
# 运行用户
-u memcache
# 允许的最大连接数
-c 1024
# 后台运行
-d
# 日志文件
-vv >> /var/log/memcached.log 2>&1
# PID文件
-P /var/run/memcached/memcached.pid
# 禁用CAS
-C
# 最大Item大小(字节)
-I 1m
# Slab页大小(字节)
-L 48
# 线程数
-t 4
# 禁用LRU淘汰
-M
# 最大内存限制后返回错误
-M
# 启用大内存页
-L
# 禁用UDP监听
-U 0
4.3 常用配置示例 #
bash
# 开发环境配置
memcached -d -m 64 -p 11211 -u root
# 生产环境配置
memcached -d -m 2048 -p 11211 -u memcache -c 4096 -t 8 -l 192.168.1.100
# 高性能配置
memcached -d -m 4096 -p 11211 -u memcache -c 8192 -t 16 -I 2m
五、启动参数详解 #
5.1 内存相关参数 #
text
-m <num> 分配的内存大小(MB),默认64MB
-M 内存用尽时返回错误,而不是淘汰数据
-I <size> 单个Item最大大小,默认1MB
-L 尝试使用大内存页
5.2 网络相关参数 #
text
-p <num> TCP端口,默认11211
-U <num> UDP端口,默认11211,0表示禁用
-l <ip> 监听的IP地址,默认所有接口
-s <file> Unix socket路径
-a <mask> Unix socket访问掩码
5.3 连接相关参数 #
text
-c <num> 最大并发连接数,默认1024
-t <num> 工作线程数,默认4
-R <num> 每个事件的最大请求数
-C 禁用CAS
-k 锁定所有页内存
5.4 其他参数 #
text
-u <user> 运行用户
-d 以守护进程运行
-P <file> PID文件路径
-v 详细输出
-vv 更详细的输出
-vvv 最详细的输出
-h 显示帮助
-i 显示Memcached和libevent许可证
六、验证安装 #
6.1 检查服务状态 #
bash
# 检查进程
ps aux | grep memcached
# 检查端口
netstat -tlnp | grep 11211
# 或使用ss
ss -tlnp | grep 11211
6.2 使用telnet测试 #
bash
# 连接Memcached
telnet 127.0.0.1 11211
# 测试命令
set test 0 0 5
hello
STORED
get test
VALUE test 0 5
hello
END
quit
6.3 使用memcached-tool #
bash
# 查看统计信息
memcached-tool 127.0.0.1:11211 stats
# 查看Slab信息
memcached-tool 127.0.0.1:11211 display
# 查看详细信息
memcached-tool 127.0.0.1:11211 dump
七、防火墙配置 #
7.1 Ubuntu/Debian (ufw) #
bash
# 允许本地访问
sudo ufw allow from 127.0.0.1 to any port 11211
# 允许特定IP访问
sudo ufw allow from 192.168.1.0/24 to any port 11211
# 重载防火墙
sudo ufw reload
7.2 CentOS/RHEL (firewalld) #
bash
# 允许端口
sudo firewall-cmd --permanent --add-port=11211/tcp
# 允许特定IP访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="11211" accept'
# 重载防火墙
sudo firewall-cmd --reload
八、安全配置 #
8.1 绑定内网IP #
bash
# 只监听内网IP
-l 192.168.1.100
# 不要监听公网IP
# -l 0.0.0.0 # 危险!
8.2 使用防火墙限制 #
bash
# 只允许特定IP访问
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 11211 -j ACCEPT
iptables -A INPUT -p tcp --dport 11211 -j DROP
8.3 使用SASL认证 #
bash
# 安装SASL支持
sudo apt install libsasl2-modules sasl2-bin
# 创建配置文件
echo "mech_list: plain" > /etc/sasl2/memcached.conf
echo "log_level: 5" >> /etc/sasl2/memcached.conf
# 创建用户
saslpasswd2 -a memcached -c user1
# 启动Memcached(启用SASL)
memcached -S -d -m 64 -p 11211
九、多实例配置 #
9.1 创建多个配置文件 #
bash
# 实例1配置
sudo cp /etc/memcached.conf /etc/memcached_server1.conf
sudo sed -i 's/11211/11211/' /etc/memcached_server1.conf
# 实例2配置
sudo cp /etc/memcached.conf /etc/memcached_server2.conf
sudo sed -i 's/11211/11212/' /etc/memcached_server2.conf
9.2 启动多个实例 #
bash
# 启动实例1
memcached -d -m 256 -p 11211 -u memcache -P /var/run/memcached1.pid
# 启动实例2
memcached -d -m 256 -p 11212 -u memcache -P /var/run/memcached2.pid
十、Systemd服务管理 #
10.1 创建服务文件 #
bash
# /etc/systemd/system/memcached.service
[Unit]
Description=Memcached Daemon
After=network.target
[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
Restart=on-failure
[Install]
WantedBy=multi-user.target
10.2 管理服务 #
bash
# 重载systemd配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start memcached
# 停止服务
sudo systemctl stop memcached
# 重启服务
sudo systemctl restart memcached
# 查看状态
sudo systemctl status memcached
# 查看日志
sudo journalctl -u memcached
十一、常见问题 #
11.1 无法启动 #
bash
# 检查端口是否被占用
netstat -tlnp | grep 11211
# 检查用户是否存在
id memcache
# 检查配置文件语法
memcached -u memcache -p 11211 -m 64 -vv
11.2 连接被拒绝 #
bash
# 检查服务是否运行
sudo systemctl status memcached
# 检查防火墙
sudo ufw status
sudo firewall-cmd --list-all
# 检查监听地址
netstat -tlnp | grep 11211
11.3 内存不足 #
bash
# 查看内存使用
free -m
# 调整Memcached内存
# 修改配置文件中的 -m 参数
# 查看Memcached统计
echo "stats" | nc 127.0.0.1 11211
十二、总结 #
安装配置要点:
| 系统 | 安装方式 | 配置文件 |
|---|---|---|
| Ubuntu/Debian | apt install | /etc/memcached.conf |
| CentOS/RHEL | yum install | /etc/sysconfig/memcached |
| macOS | brew install | 命令行参数 |
| Windows | 下载安装 | 注册表 |
下一步,让我们学习Memcached的基础语法!
最后更新:2026-03-27