美文网首页
Memcached 协议

Memcached 协议

作者: 右耳菌 | 来源:发表于2022-09-21 10:39 被阅读0次

1. Memcached 简介

1.1 Memcached 是什么?

是一种

  • 高性能
  • 多线程基于事件处理机制
  • k-v缓存系统

相关网址:

1.2 Memcached 协议是什么?
  • 协议:
    本质是通信双方为了达成一项操作而制定的一种数据交互规范:双方都能识别,能够阐明意图,保证顺序;

  • Memcached协议:

    1. memcached服务的具象化,以特定的格式规范来提供统一标准的memcached服务;
    2. 任何只要遵守该格式的客户端都能够和memcached服务建立连接,享受memcached服务;
    3. memcached服务端和客户端通过网络[TCP,UDP]或者unix domain socket[主机内进程间通信]进行相关服务协议交互;
    4. 通常使用11211端口监听,使用libevent框架进行事件处理;
  • Text Protocol
    文本协议,当客户端和服务端建立好连接后,直接通过文本行进行交互

  • Binary Protocol
    memcached 1.4.0之后推出的一种基于二进制的结构化协议


2. 文本和二进制协议

2.1 文本协议

官方介绍: https://github.com/memcached/memcached/blob/master/doc/protocol.txt

命令格式:

1.存储命令格式:
<command name><key><flags> <exptime><bytes>[noreply]\r\n
<data block>\r\n

存储命令格式:

set hello 0 90 9\r\n
memcached\r\n
STORED\r\n

2.取值命令格式:
command name> <key>[noreply]\r\n

取值命令格式:

get hello\r\n

Value hello 0 9\r\n
Memcached\r\n
END\r\n
2.2 二进制协议

官方介绍: https://github.com/memcached/memcached/wiki/BinaryProtocolRevamped

命令格式:

2.3 协议对比

3. Memcached 命令

官网: https://github.com/memcached/memcached/wiki/Commands

3.1 存储相关命令
  1. set key flags exptime bytes [noreply] value
  2. add key flags exptime bytes [noreply] value
  3. replace key flags exptime bytes [noreply] value
  4. append key flags exptime bytes [noreply] value
  5. prepend key flags exptime bytes [noreply] value
  6. cas key flags exptime bytes unique_cas_token [noreply] value
3.2 读取命令
  1. get key1 key2 key3
  2. gets key1 key2 key3
3.3 其他命令
  1. delete key [noreply]
  2. incr key increment_value
  3. decr key decrement_value
  4. flush_all [time] [noreply]

4. Memcached 使用场景

所有不需要redis复杂数据结构的场景都可以使用

  • 文本: key 250
  • 二进制: 65535
  • value: 最小1K,默认1M,最大1G

特定场景:CAS命令


如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~

相关文章

网友评论

      本文标题:Memcached 协议

      本文链接:https://www.haomeiwen.com/subject/xosvortx.html