Memcached用法

Client

Memcached客户端API

在客户端页面上已经说明了重置功能。如果希望把你的客户端发布到列表,请推送请求或分支到wiki。
旧列表基本过时。许多客户端已经过时。如果想知道使用什么客户端,应当搜索并留意你使用的语言信息。
绝大部分变成语言都有模块的索引(例如CPAN,NPM,Gem等等)。搜索的那些教程和文章,可以帮助你了解不同的客户端,可供你选择一个最适合你的需求。

Commands

Memcached行动只有几个基础命令。
完整文档可以在标准文档中找到。

标准协议

"标准协议"是Memcached涉及运行一条命令的"item(元素)"。一个item包括:

  • 一个key(任意字符串,长度长达250bytes,不允许空格和换行的ASCII模式)
  • 一个32bit的"flag"值
  • 一个截止时间,以秒来表示。'0'表示永远不过期。可以长达30天。30天之后,将会按照Unix时间戳的准确时间进行处理。
  • 一个64bit的"CAS"值,用于保持唯一性
  • 任意数据

CAS是可选(可以通过-C彻底关闭,有更多的替代技术来补充该item,但这些替代技术需要与客户端进行协作)。

无应答

绝大部分的ASCII命令具有一个"noreply(无应答)"版本。通常不应当使用ASCII协议,因为不可能把请求和错误进行对照。ASCII命名的意图避免执行变化命令等待返回包(例如set或者add)。
二进制协议正确的执行无应答(quiet)实现。如果客户端支持或者使用二进制协议,能够提高命中的可能性。

存储命令

set

最常见的命令。存储数据,可能覆盖任何现有数据。最新的item在LRU的最顶部。
**备注:**LRU:Least Recently Used最近最少使用算法。

add

当数据内容不存在时,存储数据。新的item在LRU的最顶部。如果item已经存在在LRU并且add失败,将会提升item到LRU的前端。

replace

仅仅当数据已经存在时,存储数据。几乎从未使用,并且存在协议完整(set、add、replace等等)。

append

在已经存在的item的最后字节添加数据。不允许超过item的扩展限制。用于管理列表。

prepend

和append相同,但是在现存数据前添加新数据内容。

cas

cas是Check And Set(或者Compare And Swap)检查并设置或者比较并交换。存储数据的操作,但仅仅当没有人更新数据时才能够读取item。作为解决更新缓存数据时的竞争条件。

回收命令

get

命令的作用是获取数据。使用一个或者多个key,之后会返回所有找到的item。

gets

使用CAS的获取数据命令。返回一个item的CAS标识符(唯一的64bit的数值)。获取返回值需要通过cas命令。如果item的CAS值因为get命令而发生变化,则不会存储该值。

delete

如果item存在,则在cache中移除该item。

incr/decr

Increment(增长)和Decrement(减少)。如果item存储的是以字符串表示的64bit整型。可以通过incr或者decr命令来修改这个数值。仅仅只能通过incr函数修改后的数值是正整数,或者通过decr函数修改后的数值也是正整数。item不接受负值。
如果不存在所访问的值,incr/decr将会失败。

Statistics

只有少数命令返回计数器和memcached服务器的设置。可以通过强大的工具链工具或者telnet或者netcat这两种简单方式对服务器进行检查。这些将会在协议文档中解释。

stats

基本的统计命令

stats items

返回一些在memcached存储的items的信息,打破slab。
**备注:**slab是Linux操作系统的一种内存分配机制,slab分配算法采用cache 存储内核对象。

stats slabs

返回更多的在memcached存储的items信息,打破slab。更倾向于slab的性能,而不是item的计数器细节。

stats sizes

一个特殊的命令,显示有多少item将会被分配,slab切分成32byte大小的bucket, 而不是你现在slab数量。用于确定slab的大小是否高效。
警告这个是一个开发命令。作为1.4仍然是为一个命令,将会把memcached实例锁住一段时间。如果你有上百万的item存储,将会是memcached在几分钟之内无应答。在你自己的风险中可控运行。可以通过对每一个item逐个进行重新map来使这一功能提高速度。

flush_all

使所有已经存在item的cache失效。可选一个参数,意味着N秒之后使所有的item无效化。
这个命令不会暂停服务器,将会立即返回。这个命令不会释放或者刷新内存,而是让所有item元素过期。

转载于:https://my.oschina.net/hava/blog/831266

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值