Windows 下安装 Memcached(长文解析)

为什么你需要在 Windows 下安装 Memcached

如果你正在开发一个需要频繁读取数据的应用程序,比如一个高并发的博客系统、电商网站的购物车模块,或者一个实时聊天应用,你可能会发现数据库查询成了性能瓶颈。想象一下,每来一个用户请求,系统都要去数据库里翻找一遍数据,就像每次点餐都要去厨房重新炒菜一样,效率极低。

这时候,Memcached 就像一个“临时记忆柜”——它把频繁访问的数据缓存起来,下次直接从柜子里拿,速度飞快。它不持久化数据,但胜在快,特别适合那些“临时用一下”的数据。

而 Windows 下安装 Memcached,正是你快速搭建这个“记忆柜”的第一步。虽然 Memcached 本身是为类 Unix 系统设计的,但通过一些工具和技巧,我们完全可以在 Windows 上顺利运行它。


下载与准备:获取 Memcached 的 Windows 版本

Memcached 官方并不提供 Windows 的原生二进制包,但我们可以通过第三方项目来获得。目前最稳定且广泛使用的方案是 nbsvc/memcached 项目,它提供了一个专门为 Windows 编译的版本。

打开浏览器,访问 https://github.com/nbsvc/memcached/releases 。这里列出了所有发布版本,建议选择最新的稳定版,比如 1.6.10 或更高。

下载以下两个文件:

  • memcached-win64-1.6.10.zip(这是核心可执行文件)
  • memcached-service-1.6.10.zip(用于注册为 Windows 服务)

⚠️ 注意:不要从其他非官方渠道下载,以免引入恶意软件。

解压 memcached-win64-1.6.10.zip 到一个固定路径,例如 C:\memcached。这个目录将成为你的 Memcached 工作区。


启动 Memcached 服务:从命令行开始

现在我们来手动启动 Memcached 服务。打开命令提示符(CMD),进入你解压的目录:

cd C:\memcached

执行以下命令启动 Memcached 服务:

memcached.exe -m 64 -p 11211 -u nobody -vv

让我们逐项解释这个命令的含义:

  • memcached.exe:Memcached 的主程序
  • -m 64:指定内存缓存大小为 64 MB。你可以根据服务器内存调整,比如 -m 128 表示 128 MB
  • -p 11211:设置监听端口为 11211。这是 Memcached 的默认端口,建议保持不变
  • -u nobody:指定运行用户。在 Windows 上,这个参数用于兼容性,通常写 nobody 即可
  • -vv:开启详细日志输出,方便调试。上线后可去掉,避免日志过多

📌 小贴士:如果你看到“Could not bind to port 11211”错误,说明端口被占用。可以用 netstat -ano | findstr :11211 查看占用进程,然后结束它。

启动成功后,你会看到类似以下输出:

Server listening on 0.0.0.0 port 11211

这说明 Memcached 已经在后台运行,随时可以接收请求了。


将 Memcached 注册为 Windows 服务(可选但推荐)

手动启动虽然简单,但每次重启电脑后都得手动运行,太麻烦。我们可以通过 memcached-service 工具,把它注册为系统服务,实现开机自启。

首先,解压 memcached-service-1.6.10.zip,你会得到一个 memcached-service.exe 文件。

打开管理员权限的命令提示符(右键“以管理员身份运行”),执行:

memcached-service.exe install -m 64 -p 11211 -u nobody

这个命令的作用是:

  • install:安装为 Windows 服务
  • -m 64:缓存内存大小
  • -p 11211:监听端口
  • -u nobody:运行用户

安装成功后,你可以在“服务”管理器中看到名为 Memcached 的服务。右键 → 启动,即可实现开机自启。

✅ 优势:无需手动启动,系统重启后自动恢复,适合生产环境。


使用 Memcached 的基本操作:一个真实案例

现在我们来写一个简单的 Python 脚本,演示如何与 Memcached 交互。

首先,安装 Python 客户端库:

pip install python-memcached

然后创建一个 test_memcached.py 文件,内容如下:

import memcache

mc = memcache.Client(['127.0.0.1:11211'], debug=0)

mc.set('user:1001', '张三', time=3600)  # time=3600 表示缓存 1 小时

name = mc.get('user:1001')

if name:
    print(f"缓存中获取到用户:{name}")
else:
    print("未找到缓存数据")

mc.delete('user:1001')
print("已删除缓存项 'user:1001'")

运行脚本:

python test_memcached.py

输出结果:

缓存中获取到用户:张三
已删除缓存项 'user:1001'

💡 比喻:这就像你把“张三”的身份信息放进记忆柜,下次有人问“张三是谁”,你直接从柜子里拿,不用再问一次。1 小时后,柜子里的东西自动过期,避免信息陈旧。


常见问题与排查技巧

在 Windows 下安装 Memcached 时,可能会遇到以下问题:

1. 无法启动服务,提示“拒绝访问”

原因:没有以管理员权限运行命令。

解决方法:右键“命令提示符” → “以管理员身份运行”。

2. 端口被占用

运行以下命令查看:

netstat -ano | findstr :11211

如果看到输出,说明有进程占用了 11211 端口。记下 PID,然后在任务管理器中结束该进程。

3. 启动后立即退出

检查是否误用了 -u nobody 参数。在 Windows 上,该参数仅用于兼容,不能写成真实用户名。保持 nobody 即可。

4. 客户端连接失败

确保防火墙没有阻止 11211 端口。可以在 Windows 防火墙中添加入站规则,允许 TCP 端口 11211。


总结与建议

通过本文,你已经完成了在 Windows 下安装 Memcached 的全过程:从下载、启动、注册服务,到实际调用。整个过程并不复杂,关键在于理解每个参数的作用。

Memcached 作为轻量级缓存系统,在应对高并发场景时表现优异。尤其适合那些“读多写少”的业务,比如用户信息、配置项、热点页面等。

📌 小结:

  • 选择稳定版本,从 nbsvc 项目下载
  • 使用 -m 控制内存,避免占满系统
  • 推荐注册为 Windows 服务,实现开机自启
  • 用 Python 或其他语言客户端进行测试验证
  • 注意防火墙与端口冲突问题

记住,缓存不是万能的,它不能替代数据库。它的使命是“减轻数据库压力”,而不是“取代数据存储”。合理使用 Memcached,能让你的系统跑得更快、更稳。

如果你正在构建一个需要快速响应的 Web 应用,不妨现在就动手试试 Windows 下安装 Memcached,为你的项目加上一块“加速板”。