- 安装 Memcached 服务器:在你的系统上运行一个 Memcached 服务。
- 安装 Python 客户端库:在你的 Python 环境中安装一个库,用于与上述服务进行通信。
下面我将为你详细讲解这两个步骤,并提供代码示例。

第 1 步:安装 Memcached 服务器
这一步不是安装 Python 包,而是在你的操作系统(如 Linux, macOS, Windows)上安装并启动 Memcached 服务。
在 Linux (以 Ubuntu/Debian 为例)
-
更新包列表:
sudo apt update
-
安装 Memcached:
sudo apt install memcached
-
安装并启动后,可以检查其状态:
(图片来源网络,侵删)sudo systemctl status memcached
你应该看到
active (running)的字样。 -
可选:配置监听地址 默认情况下,Memcached 只监听本地回环地址
0.0.1,如果你需要从其他服务器访问,需要修改配置文件。 打开配置文件:sudo nano /etc/memcached.conf
找到
-l 127.0.0.1这一行,将其修改为-l 0.0.0.0以监听所有网络接口,或者修改为特定的服务器 IP 地址。 修改后保存文件,并重启 Memcached 服务:sudo systemctl restart memcached
在 macOS (使用 Homebrew)
-
如果你还没有安装 Homebrew,请先安装它。
-
使用 Homebrew 安装 Memcached:
brew install memcached
-
启动 Memcached 服务:
brew services start memcached
你可以使用
brew services list来查看服务状态。
在 Windows
在 Windows 上安装 Memcached 稍微复杂一些,通常有两种方式:
-
预编译二进制文件: 从第三方网站下载预编译的
.zip或.exe文件(从 Memcached for Windows 等站点),下载后解压,然后手动运行memcached.exe。# 进入解压目录 cd C:\path\to\memcached # 以服务方式运行(推荐) # 需要管理员权限 memcached.exe -d install memcached.exe -d start # 或者直接运行(不推荐,关闭命令行窗口服务会停止) # memcached.exe
-
使用 WSL (Windows Subsystem for Linux): 这是在 Windows 上使用 Linux 工具(包括 Memcached)的推荐方式,你可以像在 Ubuntu 上一样通过
apt安装。
第 2 步:安装 Python 客户端库
最常用和最推荐的 Python 客户端库是 pymemcache,它设计良好,功能全面,并且支持 Python 2 和 3。
安装 pymemcache
打开你的终端或命令行,使用 pip 进行安装:
# 推荐使用 pip 安装 pip install pymemcache
如果你使用的是 Python 3,并且系统中有多个 Python 版本,建议使用 pip3:
pip3 install pymemcache
其他备选客户端库
- python-memcached: 一个老牌的库,也很流行,但
pymemcache通常被认为是更现代的选择。pip install python-memcached
第 3 步:Python 代码示例
安装完成后,你就可以在 Python 代码中连接并使用 Memcached 了。
使用 pymemcache 示例
pymemcache 提供了一个简单的客户端接口。
from pymemcache.client.base import Client
# 1. 创建一个客户端,连接到 Memcached 服务器
# 默认地址是 ('127.0.0.1', 11211)
client = Client(('localhost', 11211))
# 2. 设置键值对 (set)
# key: 'key1', value: 'value1', 过期时间为 10 秒
client.set('key1', 'value1', expire=10)
print("设置键 'key1' 成功")
# 3. 获取值 (get)
value = client.get('key1')
if value:
# get 方法返回的是字节串,需要解码
print(f"获取键 'key1' 的值: {value.decode('utf-8')}")
else:
print("键 'key1' 不存在或已过期")
# 4. 删除键 (delete)
client.delete('key1')
print("删除键 'key1' 成功")
# 5. 再次获取,验证是否已删除
value = client.get('key1')
if value:
print(f"获取键 'key1' 的值: {value.decode('utf-8')}")
else:
print("键 'key1' 已被删除,获取结果为 None")
# 6. 关闭连接 (可选,客户端会自动处理)
# client.close()
运行结果
当你运行上面的代码时,输出会是这样:
设置键 'key1' 成功
获取键 'key1' 的值: value1
删除键 'key1' 成功
键 'key1' 已被删除,获取结果为 None
如果你在 10 秒内没有删除 key1,再次运行程序时,第二次获取 key1 的结果也会是 None,因为它已经过期了。
常见问题与解决方案 (FAQ)
Q1: ConnectionRefusedError: [Errno 111] Connection refused
- 原因:你的 Python 脚本无法连接到 Memcached 服务器,这通常意味着服务器没有运行,或者连接地址/端口不正确。
- 解决方案:
- 确认 Memcached 服务正在运行:
- Linux:
sudo systemctl status memcached - macOS:
brew services list - Windows: 检查任务管理器或服务列表中是否有 Memcached 进程。
- Linux:
- 检查连接参数:确保代码中的地址和端口与服务器配置的一致,默认是
('localhost', 11211)或('127.0.0.1', 11211)。
- 确认 Memcached 服务正在运行:
Q2: ModuleNotFoundError: No module named 'pymemcache'
- 原因:Python 环境中没有安装
pymemcache库。 - 解决方案:
- 确认你使用的
pip是否对应正确的 Python 环境,可以尝试python -m pip install pymemcache或python3 -m pip install pymemcache。 - 如果你使用的是虚拟环境,请确保已经激活了该环境。
- 确认你使用的
Q3: 如何在 Django 或 Flask 中使用 Memcached?
-
Django: Django 的缓存框架内置了对 Memcached 的优秀支持,你只需要在
settings.py中配置即可。# settings.py CACHES = { "default": { "BACKEND": "django.core.cache.backends.memcached.PyMemcacheCache", "LOCATION": "127.0.0.1:11211", } }然后就可以在视图中使用了:
from django.core.cache import cache def my_view(request): # 尝试从缓存获取 data = cache.get('my_data') if data is None: # 缓存中没有,从数据库获取 data = MyModel.objects.all() # 存入缓存,过期时间 300 秒 cache.set('my_data', data, 300) return render(request, 'template.html', {'data': data}) -
Flask: 可以使用
Flask-Caching扩展。pip install Flask-Caching
然后在应用中配置:
from flask import Flask from flask_caching import Cache app = Flask(__name__) # 配置缓存 app.config['CACHE_TYPE'] = 'MemcacheCache' app.config['CACHE_MEMCACHED_SERVERS'] = ['127.0.0.1:11211'] cache = Cache(app) @app.route('/') @cache.cached(timeout=50) # 缓存此视图 50 秒 def index(): return "Hello, World! This is a cached response."
- 服务器端:根据你的操作系统安装并启动 Memcached 服务。
- 客户端:在 Python 环境中安装
pymemcache库 (pip install pymemcache)。 - 编码:使用
Client类连接服务器,然后通过set,get,delete等方法操作缓存数据。
遵循以上步骤,你就可以成功地在 Python 项目中集成和使用 Memcached 了。
