Linux Memcached 安装(建议收藏)

更新时间:

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

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

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

在现代互联网应用中,缓存技术是优化系统性能的重要手段。Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于 Web 开发中,可显著减少数据库负载并提升响应速度。本文将从 Linux Memcached 安装 入手,结合实际案例和代码示例,分步骤讲解如何在 Linux 环境中部署 Memcached。内容适合编程初学者和中级开发者,通过循序渐进的指导,帮助读者快速掌握这一工具的核心功能与应用方法。


环境准备与系统要求

在安装 Memcached 之前,需要确保环境满足以下条件:

  1. Linux 操作系统:支持主流发行版(如 Ubuntu、CentOS 等)。
  2. 依赖库:Memcached 依赖于 libevent 库,该库用于处理网络事件。
  3. 编译工具:若从源码编译安装,需提前安装 gccmake

系统检查与依赖安装

以 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 系统

使用 dnfyum 安装:

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  

端口与连接测试

使用 netstatss 命令确认端口是否监听:

sudo netstat -tuln | grep 11211  

通过 telnet 测试连接

telnet localhost 11211  
Trying ::1...  
Connected to localhost.  
Escape character is '^]'.  
version  

Memcached 的基础操作与案例

客户端工具:nctelnet

若需手动测试缓存操作,可使用 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 服务未启动或端口未开放。
解决

  1. 检查服务状态:systemctl status memcached
  2. 确认防火墙允许 11211 端口:
sudo ufw allow 11211/tcp  

问题 2:内存不足

现象:Memcached 日志提示 WARNING: soft memory limit of 67108864 bytes
解决

  • 调整 -m 参数增大内存分配。
  • 检查是否有其他进程占用大量内存。

进阶应用:分布式缓存集群

Memcached 支持分布式部署,通过多节点分片存储数据。例如,使用 libmemcachedspymemcached 客户端实现负载均衡:

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,开发者可以为应用构建更健壮的缓存层,为用户提供更流畅的体验。

最新发布