IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Memcached常用命令及使用说明

    book_mmicky发表于 2014-05-13 15:20:55
    love 0
    一:存储命令
    存储命令的格式:
    <command name> <key> <flags> <exptime> <bytes>
    <data block>
    参数说明如下:
    <command name> set/add/replace
    <key> 查找关键字
    <flags> 客户机使用它存储关于键值对的额外信息
    <exptime> 该数据的存活时间,0表示永远
    <bytes> 存储字节数
    <data block> 存储的数据块(可直接理解为key-value结构中的value)

    1:添加
    A:无论如何都存储的set
    set命令在memcached中的使用频率极高,不但可以添加,如果set的key已经存在,该命令可以更新该key的值。
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    B:只有数据不存在时进行添加的add
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    C:只有数据存在时进行替换的replace
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    2:删除delete
    delete用于删除已存在的key,删除不存在的key会报错。 
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    二:读取命令
    1:get
    get命令中的key可以一个或者多个,key之间以空格隔开。
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    2:gets
    gets命令比普通的get命令多返回了一个数字(图中为13)。这个数字可以检查数据是否发生改变。当key对应的数据改变时,这个多返回的数字也会改变。
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客

    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
      
    3:cas
    cas即checked and set的意思,只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    三:状态命令
    1:stats
    2、stats items
    执行stats items,可以看到STAT items行,如果memcached存储内容很多,那么这里也会列出很多的STAT items行。 
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    3、stats cachedump slab_id limit_num
    我们执行stats cachedump 1 0 命令效果如下:
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    这里slab_id为1,是由stats items返回的结果(STAT items后面的数字)决定的;limit_num看起来好像是返回多少条记录,猜的一点不错, 不过0表示显示出所有记录,而n(n>0)就表示显示n条记录,如果n超过该slab下的所有记录,则结果和0返回的结果一致。
    通过stats items、stats cachedump 、get命令可以遍历memcached的记录。 

    4、其他stats命令
    如stats slabs,stats sizes,stats reset等等使用也比较常见。 

    四:其他常见命令
    1:append
    在现有的缓存数据后添加缓存数据,如现有缓存的key不存在服务器响应为NOT_STORED。
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    2:prepend
    和append非常类似,但它的作用是在现有的缓存数据前添加缓存数据。 
    Memcached常用命令及使用说明 - mmicky - mmicky 的博客
     
    3:flush_all
    该命令有一个可选的数字参数,它的效果是使已经存在的项目立即失效或在指定的时间后失效。此后执行取回命令,将不会有任何内容返回(除非重新存储同样的键名)。 flush_all 实际上没有立即释放项目所占用的内存,而是在随后陆续有新的项目被储存时执行(这是由memcached的懒惰检测和删除机制决定的)。

    4:其他命令
    memcached还有很多命令,比如对于存储为数字型的可以通过incr/decr命令进行增减操作等等,这里只列出开发和运维中经常使用的命令,其他的不再一一举例说明。


沪ICP备19023445号-2号
友情链接