Linux Memcached 安装(建议收藏)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;演示链接: http://116.62.199.48:7070 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观
在现代互联网应用中,缓存技术是优化系统性能的重要手段。Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于 Web 开发中,可显著减少数据库负载并提升响应速度。本文将从 Linux Memcached 安装 入手,结合实际案例和代码示例,分步骤讲解如何在 Linux 环境中部署 Memcached。内容适合编程初学者和中级开发者,通过循序渐进的指导,帮助读者快速掌握这一工具的核心功能与应用方法。
环境准备与系统要求
在安装 Memcached 之前,需要确保环境满足以下条件:
- Linux 操作系统:支持主流发行版(如 Ubuntu、CentOS 等)。
- 依赖库:Memcached 依赖于
libevent
库,该库用于处理网络事件。 - 编译工具:若从源码编译安装,需提前安装
gcc
和make
。
系统检查与依赖安装
以 Ubuntu 22.04 为例,执行以下命令安装依赖:
sudo apt update
sudo apt install -y libevent-dev build-essential
对于 CentOS 8 用户,命令如下:
sudo dnf install -y libevent-devel gcc make
Memcached 的安装步骤
Memcached 支持通过包管理器安装或从源码编译安装。以下分别介绍两种方法,读者可根据需求选择。
方法一:通过包管理器快速安装
Ubuntu/Debian 系统
运行以下命令即可一键安装:
sudo apt install -y memcached
CentOS/RHEL 系统
使用 dnf
或 yum
安装:
sudo dnf install -y memcached
sudo yum install -y memcached
方法二:从源码编译安装(适合高级用户)
若需要自定义配置,可从官网下载最新版本源码:
wget https://memcached.org/files/memcached-1.6.18.tar.gz
tar -zxvf memcached-1.6.18.tar.gz
cd memcached-1.6.18
./configure
make
sudo make install
配置与优化 Memcached
安装完成后,需通过配置文件调整参数以满足实际需求。默认配置文件路径为 /etc/memcached.conf
。
常用配置参数详解
参数 | 作用描述 | 示例值 |
---|---|---|
-m | 设置内存限制(MB) | -m 1024 |
-p | 指定监听端口 | -p 11211 |
-u | 指定运行用户(通常为 nobody ) | -u memcached |
-l | 绑定 IP 地址(0.0.0.0 表示所有接口) | -l 127.0.0.1 |
-c | 最大并发连接数 | -c 1024 |
修改配置文件示例
在 /etc/memcached.conf
中,添加以下内容以配置内存和端口:
-m 2048
-p 12345
-l 0.0.0.0
启动与验证 Memcached 服务
服务管理命令
安装完成后,可通过以下命令控制 Memcached 服务:
sudo systemctl start memcached
sudo systemctl enable memcached
sudo systemctl status memcached
端口与连接测试
使用 netstat
或 ss
命令确认端口是否监听:
sudo netstat -tuln | grep 11211
通过 telnet 测试连接
telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
version
Memcached 的基础操作与案例
客户端工具:nc
或 telnet
若需手动测试缓存操作,可使用 nc
(Netcat)工具:
nc localhost 11211
在连接成功后,输入以下命令:
set my_key 0 60 10
hello world
get my_key
程序集成案例:Python 客户端
通过 Python 的 pymemcache
库实现缓存操作:
from pymemcache.client.base import Client
client = Client(('localhost', 11211))
client.set('user:1001', 'John Doe')
value = client.get('user:1001')
print(value.decode()) # 输出:John Doe
client.delete('user:1001')
常见问题与解决方案
问题 1:连接被拒绝
现象:telnet: Unable to connect to remote host: Connection refused
原因:Memcached 服务未启动或端口未开放。
解决:
- 检查服务状态:
systemctl status memcached
。 - 确认防火墙允许 11211 端口:
sudo ufw allow 11211/tcp
问题 2:内存不足
现象:Memcached 日志提示 WARNING: soft memory limit of 67108864 bytes
。
解决:
- 调整
-m
参数增大内存分配。 - 检查是否有其他进程占用大量内存。
进阶应用:分布式缓存集群
Memcached 支持分布式部署,通过多节点分片存储数据。例如,使用 libmemcached
或 spymemcached
客户端实现负载均衡:
from pymemcache.client.hash import HashClient
clients = HashClient([('node1', 11211), ('node2', 11211)])
clients.set('shared_key', 'distributed value')
print(clients.get('shared_key').decode())
结论
通过本文的指导,读者已掌握如何在 Linux 环境中完成 Memcached 安装、配置与基本操作。Memcached 的高效性使其成为处理高并发场景的理想选择,无论是存储用户会话、缓存数据库查询结果,还是加速 API 响应,都能显著提升系统性能。
对于开发者而言,建议结合实际业务需求,进一步探索 Memcached 的高级功能(如 LRU 算法、CAS 操作等),并结合监控工具(如 memcached-tool
)优化集群性能。通过合理使用 Memcached,开发者可以为应用构建更健壮的缓存层,为用户提供更流畅的体验。