https://github.com/quguolin/memcache


一:Error

ERROR\r\n

客户端发送了一个不存在的命令

CLIENT_ERROR\r\n

客户端发送了一个不符合协议的命令

SERVER_ERROR\r\n

服务的错误

二:Storage commands

1.<command name> <key> <flags> <exptime> <bytes> [noreply]\r\n
2.cas <key> <flags> <exptime> <bytes> <cas unique> [noreply]\r\n

command name is "set", "add", "replace", "append" or "prepend"

set

用于将 value(数据值) 存储在指定的 key(键) 中
如果set的key已经存在,该命令可以更新该key所对应的原来的数据
  • STORED:保存成功后输出
  • ERROR:在保存失败后输出

add

用于将 value(数据值) 存储在指定的 key(键) 中
如果 add 的 key 已经存在,则不会更新数据(过期的 key 会更新),之前的值将仍然保持相同,并且获得响应 NOT_STORED
  • STORED:保存成功后输出
  • NOT_STORED :在保存失败后输出

replace

用于向已存在 key(键) 的 value(数据值) 后面追加数据
如果 key 不存在,则替换失败,并且获得响应 NOT_STORED
  • STORED:保存成功后输出
  • NOT_STORED :在保存失败后输出

append

用于向已存在 key(键) 的 value(数据值) 后面追加数据
STORED:保存成功后输出
  • NOT_STORED:该键在 Memcached 上不存在
  • CLIENT_ERROR:执行错误

prepend

用于向已存在 key(键) 的 value(数据值) 前面追加数据
  • STORED:保存成功后输出
  • NOT_STORED:该键在 Memcached 上不存在
  • CLIENT_ERROR:执行错误

cas

命令用于执行一个"检查并设置"的操作它仅在当前客户端最后一次取值后,该key 对应的值没有被其他客户端修改的情况下, 才能够将值写入。
检查是通过cas_token参数进行的, 这个参数是Memcach指定给已经存在的元素的一个唯一的64位值
首先需要从 Memcached 服务商通过 gets 命令获取令牌(token),gets 返回64位的整型值非常像名称/值对的 "版本" 标识符
  • STORED:保存成功后输出
  • ERROR:保存出错或语法错误
  • EXISTS:在最后一次取值后另外一个用户也在更新该数据
  • NOT_FOUND:Memcached 服务上不存在该键值

memcache 协议 && Golang实现的更多相关文章

  1. Tokyo Tyrant(TTServer)系列(三)-Memcache协议

    通过Memcache协议使用ttserver  通过telnet 127.0.0.1 9032 telnet连接到到启动的实例. 下面我们通过add添加key为key1和value为value1的数据 ...

  2. Memcache的使用和协议分析详解

    Memcache的使用和协议分析详解 作者:heiyeluren博客:http://blog.csdn.NET/heiyeshuwu时间:2006-11-12关键字:PHP Memcache Linu ...

  3. [转]Memcache的使用和协议分析详解

    Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力. 它可以应 ...

  4. Memcache教程 Memcache零基础教程

    Memcache是什么 Memcache是danga.com的一个项目,来分担数据库的压力. 它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机制是在内存中开辟一块空间,然后建立一个Hash ...

  5. Memcache基础教程

    Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力. 它可以应 ...

  6. php的memcache和memcached扩展区别

    老生长谈的问题了.我这里就整理一下. memcache的文档在:http://pecl.php.net/package/memcache memcached的文档在:http://pecl.php.n ...

  7. memcache的内存回收机制

    memcache不会释放内存,而是重新利用. 在缓存的清除方面,memcache是不释放已分配内存.当已分配的内存所在的记录失效后,这段以往的内存空间,memcache只会重复利用. memcache ...

  8. PHP + Memcache 实现多服务器session共享

    很多时候一个完整的系统可能运行在多个服务器上,如果这多个服务器之间需要共享session的话,那么php默认的files保存session的方式就无能为力了.这时我们可以考虑使用memcache 来接 ...

  9. C扩展 从共享内存shm到memcache外部内存

    引言 - ipc - shm 共享内存 本文会通过案例了解ipc 的共享内存机制使用, 后面会讲解C 如何使用外部内存服务memcached. 好先开始了解 linux 共享内存机制. 推荐先参看下面 ...

随机推荐

  1. Python web前端 08 字符串 数组 json

    Python web前端 08 字符串 数组 json 一.string #string 字符串 #索引 下标 偏移量 ---从0开始 str[index]; #通过索引取字符串 可读不可写 str. ...

  2. 长春理工大学第十四届程序设计竞赛(重现赛)B.Bowling Game

    链接:https://ac.nowcoder.com/acm/contest/912/B 题意: 链接:https://ac.nowcoder.com/acm/contest/912/B来源:牛客网 ...

  3. spring 3.2.7 applicationContext.xml

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.s ...

  4. windows关闭端口方法

    windows关闭端口方法 在介绍各种端口的作用前,这里先介绍一下在Windows中如何关闭/打开端口,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如Telnet服务的23端口.FT ...

  5. vconsole移动端调试技巧(禁止webviuew,inspect等)

    如果由于某种原因(天朝FQ),不能支持google 的 inspect  调试 或者再想在某个APP里面调试你的页面,但是没有打开APP的webview ,也不能授权调试 在或者,Fider 可以拦截 ...

  6. <img/>标签属性

    属性        属性值               描述 src            url               图像的路径 alt             文本            ...

  7. MySQL连表Update修改数据

    设想两张表,如下 table A field id field name table B field id filed my_name 现在希望将表B中的my_name中的内容“拷贝”到表A中对应的n ...

  8. MapReduce的过程(2)

    MapReduce的编程思想(1) MapReduce的过程(2) 1. MapReduce从输入到输出 一个MapReduce的作业经过了input.map.combine.reduce.outpu ...

  9. Leet-code144. Binary Tree Preorder Traversal

    这是一道将二叉树先序遍历,题目不难. 首先采用深搜递归 /** * Definition for a binary tree node. * public class TreeNode { * int ...

  10. 通过Jenkins调用自动部署war包及jar包到服务器上的Shell脚本

    1)部署war包#!/bin/bashif [ id>0];then echo"stopproject" kill −9 idelse echo "project ...