Windows 下安装 Memcached(保姆级教程)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

前言

在编程开发中,缓存技术是提升系统性能的关键工具之一。Memcached 是一个高性能的分布式内存对象缓存系统,广泛应用于 Web 应用中以减少数据库访问压力。然而,许多开发者在初次接触 Memcached 时,可能会对 Windows 下的安装和配置感到困惑。本文将通过分步骤的讲解、实际案例和代码示例,帮助读者在 Windows 环境中快速上手 Memcached,并理解其核心原理。


Memcached 的核心概念与作用

什么是 Memcached?

Memcached 是一个基于内存的键值(Key-Value)存储系统,它通过将高频访问的数据暂存到内存中,减少对数据库的重复查询,从而提升应用的响应速度。可以将其想象为一个“临时存储柜”:当程序需要频繁读取某份数据时,Memcached 会像快递柜一样,直接提供已缓存的副本,而无需每次都从数据库中取出。

Memcached 的典型应用场景

  1. 缓存数据库查询结果:例如,减少对 MySQL 的重复 SELECT 操作。
  2. 会话共享:在分布式系统中,Memcached 可以作为共享会话存储,避免单点故障。
  3. 热点数据加速:如电商网站的爆款商品信息,通过缓存减少服务器负载。

步骤 1:下载与安装 Memcached

下载官方二进制文件

Memcached 的官方版本在 Windows 环境中需要通过第三方编译包安装。访问 Memcached 官方下载页面 或使用以下步骤:

  1. 访问 Memcached for Windows 的 GitHub 页面,选择最新版本。
  2. 下载 memcached-*.zip 压缩包(例如 memcached-1.6.2-win64.zip)。

解压并配置环境变量

将下载的压缩包解压到一个固定路径,例如 C:\memcached。为了方便后续操作,建议将 Memcached 的可执行文件路径添加到系统环境变量中:

  1. 右键点击“此电脑” → 选择“属性” → “高级系统设置” → “环境变量”。
  2. 在“系统变量”中找到 Path,点击“编辑”,添加解压后的路径(如 C:\memcached)。

步骤 2:配置 Memcached 服务

创建配置文件

Memcached 的配置文件(如 memcached.conf)用于定义内存大小、监听端口等参数。使用记事本创建该文件,并添加以下内容:

-d install      # 以服务模式安装  
-m 64           # 分配 64MB 内存(可根据需求调整)  
-p 11211        # 监听端口(默认为 11211)  
-l 127.0.0.1    # 绑定本地地址  

安装并启动服务

  1. 打开命令提示符(CMD),输入以下命令安装服务:
    memcached.exe -d install -m 64 -p 11211 -l 127.0.0.1  
    

    或通过配置文件:

    memcached.exe -d install -f memcached.conf  
    
  2. 启动 Memcached 服务:
    net start memcached  
    

步骤 3:验证 Memcached 安装

使用 telnet 测试连接

打开 CMD,输入以下命令:

telnet 127.0.0.1 11211  

如果成功连接,会看到类似 Connected to localhost 的提示,输入 version 可查看 Memcached 版本。

通过 Python 客户端测试

安装 Python 的 python-memcached 库:

pip install python-memcached  

编写测试代码:

from memcache import Client  

client = Client(['127.0.0.1:11211'])  

client.set('username', 'Alice', time=0)  # time=0 表示永不过期  
print("存储成功!")  

value = client.get('username')  
print(f"读取到的值:{value}")  

运行代码后,应输出:

存储成功!  
读取到的值:Alice  

Memcached 的核心命令与参数详解

常用命令

命令作用示例
set存储键值对set key value 0 0
get获取键对应的值get key
delete删除指定键delete key
stats查看服务器状态stats

参数解释

  • -m 参数:定义分配的内存大小(单位为 MB)。
    • 比如 -m 256 表示分配 256MB 内存。
  • -p 参数:指定监听端口,默认为 11211。
    • 若需与其他服务冲突,可修改为其他端口(如 -p 11212)。

常见问题与解决方案

问题 1:服务启动失败

现象:执行 net start memcached 时提示“服务没有及时响应”。
原因:防火墙或杀毒软件拦截了 Memcached 的端口。
解决方法

  1. 临时关闭防火墙:
    netsh advfirewall set allprofiles state off  
    
  2. 或在防火墙中添加例外:
    • 打开“控制面板” → “Windows Defender 防火墙” → “允许应用通过防火墙”。
    • 找到 Memcached 的端口(如 11211)并允许连接。

问题 2:连接超时

现象:使用 telnet 连接时提示“连接失败”。
可能原因

  • Memcached 未绑定到 127.0.0.1,而是绑定到其他 IP。
  • 端口被占用。
    解决方法
  1. 检查配置文件中的 -l 参数是否为 127.0.0.1
  2. 使用 netstat -ano 查看端口占用情况,终止冲突进程。

Memcached 的进阶用法与性能优化

分布式缓存配置

Memcached 支持多节点集群,通过客户端库自动分配数据。例如,配置两个节点:

client = Client(['127.0.0.1:11211', '127.0.0.1:11212'])  

设置键的过期时间

通过 time 参数定义缓存的生命周期:

client.set('session_token', 'ABC123', time=3600)  # 1 小时后过期  

使用 Slab Allocator 优化内存

Memcached 的内存分配基于 Slab Allocator,通过 -c 参数调整最大并发连接数:

memcached -m 256 -c 1024 -p 11211  

结论

通过本文的讲解,读者应已掌握在 Windows 环境中安装、配置和使用 Memcached 的全流程。Memcached 的核心优势在于其轻量级、高性能和易用性,适合快速提升 Web 应用的响应速度。建议读者通过实际项目(如搭建简易的缓存服务器或优化数据库查询)进一步巩固知识。

下一步行动建议

  1. 尝试用 Memcached 缓存数据库查询结果。
  2. 探索其他客户端库(如 pylibmccmemcache)。
  3. 学习与 Memcached 结合的框架,例如 Django 或 Flask 的缓存中间件。

通过持续实践,您将更深入理解缓存技术对系统性能的优化价值。

最新发布