• 首页
  • 博客
  • 留言墙
  • 关于

动态更新

喜欢我的内容的话不妨订阅支持一下 🫶
加入其他 0 位订阅者,每月一封,随时可以取消订阅。

© 2025 Cali Castle. 网站已开源:GitHub

首页博客留言墙关于
总浏览量 2.4万
最近访客来自 Columbus, US🇺🇸
  • Memcached 简介
  • memcached安装配置
  • 功能详情
  • 连接
  • 基本命令
memcached 入门到精通
2019/09/30memcache, 在线服务

memcached 入门到精通

Memcached 是高性能、分布式的内存对象缓存系统(Memory Object Cache System);是一种典型的 C/S 架构服务器,对外提供基于 key-value (键/值)映射的快速数据存储和检索服务。

1,033次点击4分钟阅读

Memcached 简介

Memcached 是高性能、分布式的内存对象缓存系统(Memory Object Cache System);是一种典型的 C/S 架构服务器,对外提供基于 key-value (键/值)映射的快速数据存储和检索服务。

Memcached 采用基于文档的协议,使用空格作为分隔符,使用\r\n作为结尾符。通过telnet可手动访问存储在memcached中的数据。

Memcached 既能提供基于 TCP 的服务,也能提供基于UDP的服务。该如何选择呢?

文档给出的建议是:当客户端并发请求过多,TCP 连接成瓶颈时,可以考虑采用 UDP 接口。众所周知,UDP协议不会保证传输的正确性,因此 UDP 接口只能用于GET 这样并不一定需要成功的操作,即使失败,也只会导致 cache 未命中,影响不会很大。

备注:在memcached启动的时候,通过参数-p(TCP端口号)/-U(UDP端口号)区分

memcached安装配置

安装和配置可以参看:Memcached安装及配置

启动示例

参数说明如下:

参数名解释

参数说明

功能详情

连接

使用 telnet 连接到memcached: telnet 127.0.0.1 11211

基本命令

格式:

command <key> <flags> <expiration time> <bytes>
<value>

各个参数说明如下:

下面将详细说明各个命令的使用

  • set:用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。使用 set 命令正确设定了键值对,服务器将使用单词 STORED 进行响应。需要输入第一行的命令和第二行的value;
  • get:用于检索与之前添加的键值对相关的值。您将使用 get 执行大多数检索操作;
  • replace:仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应;
  • delete:用于删除 memcached 中的任何现有值。您将使用一个键调用 delete,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条 NOT_FOUND 消息;
  • add:仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应NOT_STORED;
  • gets:gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符;
  • cas:用于设置名称/值对的值(如果该名称/值对在您上次执行 gets 后没有更新过)。它使用与 set命令相类似的语法,但包括一个额外的值:gets 返回的额外值;
  • stats:转储所连接的 memcached 实例的当前统计数据;
  • flush_all:仅用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处