在上篇文章中,我们了解了 Memcache 的基本特性和适用场景。本文将进入实践环节,在 云栈社区 的技术分享氛围中,详细讲解如何在 CentOS/RHEL 系统上部署 Memcache 服务,并通过命令行工具进行基础的增删改查操作,帮助你快速上手这个经典的内存缓存中间件。
1. 安装 Memcached
在基于 RHEL 的发行版(如 CentOS)上,我们可以直接使用 yum 包管理器进行安装,非常方便。
yum install memcached -y
2. 启动 Memcached 服务
安装完成后,使用 systemctl 命令来管理 Memcache 服务。
# 启动 Memcached 服务
systemctl start memcached
# 设置开机自启
systemctl enable memcached
3. 如何查看 Memcached 服务状态?
与 Redis 自带 redis-cli 工具不同,Memcached 本身并未提供专用的命令行客户端。它主要设计为通过 TCP 协议交互,因此我们可以借助 Linux 系统上常见的网络测试工具来连接并查询服务状态,这也是运维工作中常用的调试方法。
3.1 使用 telnet 连接
你可以使用 telnet 命令连接到 Memcached 的默认端口(11211),然后输入 stats 命令来查看服务状态。这个交互过程类似于在 Redis 中执行 info 命令。

3.2 使用 nc (netcat) 连接
另一种更常用于脚本中的方式是使用 nc 命令。同样可以发送 stats 命令并立即获取返回结果。

4. Memcached 基础数据操作:增删改查
掌握了如何连接服务后,我们来学习核心的数据操作命令。在脚本或自动化任务中,通常使用 echo 管道配合 nc 命令来执行。
增加 & 修改
Memcached 提供了几个命令用于设置和修改键值对,主要区别在于对键是否存在的判断逻辑。
# 示例1:设置键值对
echo -e "set script_test 0 60 4\nabcd\n" | nc 127.0.0.1 11211
# 示例2:获取键值并提取结果
echo -e "get script_test\n" | nc 127.0.0.1 11211 | grep -A1 "VALUE" | tail -1
# 示例3:清空缓存
echo -e “flush_all\n” | nc 127.0.0.1 11211
下表清晰地展示了 set、add、replace 三个命令的区别:
| 命令 |
作用 |
使用场景 |
set |
无则增,有则改(通用) |
大部分增改场景 |
add |
只有 key 不存在时才新增 |
确保新增,防止覆盖 |
replace |
只有 key 存在时才修改 |
确保修改的是已存在数据 |
下图展示了一个完整的交互式 set 和 get 操作流程:

查询
查询操作主要使用 get 和 gets 命令。
# 查单个key
get name
# 返回:VALUE name 0 4 → lisi → END
# 查多个key
get name age
# 若key不存在,仅返回END
# gets带版本号查询
gets name
# 返回:VALUE name 0 4 123456 → lisi → END(123456是版本号)
删除
删除操作使用 delete 命令,也可以清空整个缓存。
delete key [延迟秒数]
- 延迟秒数:可选,指定多少秒后删除(期间该 key 不可访问)。
- 成功返回
DELETED,key 不存在返回 NOT_FOUND。
清空所有缓存数据:
flush_all [延迟秒数]
# 延迟秒数:可选,指定多少秒后清空(期间可查不可改)
flush_all 0 # 立即清空
至此,你已经掌握了 Memcache 服务在 Linux 下的基本部署和命令行操作方法。作为一款经典的内存数据库和缓存组件,理解其基础操作是将其集成到应用架构中的第一步。无论是作为简单的会话存储,还是用于缓解后端数据库的压力,这些基础命令都是你日后进行性能调优和故障排查的基石。
|