• memcached 命令操作详解


    一.存储命令

    存储命令的格式:

     <command name> <key> <flags> <exptime> <bytes>
    
    <data block>

    参数说明:

    <command name> 操作命令:set/add/replace
    <key> 缓存的键值
    <flags> 客户机使用它存储关于键值对的额外信息
    <exptime> 缓存过期时间 单位为秒 0 表示永远存储
    <bytes> 缓存值的字节数
    <data block> 数据块

    1.添加值命令

    (1) 无论如何都添加或更新的set 命令 (值不存在则添加 存在则更新)  set 设置后可以用get命令获取值 也可以使用delete命令删除该值

    [root@zhz jiehun]# telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    set test_key 0 0 3
    100
    STORED
    get test_key
    VALUE test_key 0 3
    100
    END
    delete test_key
    DELETED
    get test_key
    END

    (2)只有数据不存在时添加值的add命令

    [root@zhz jiehun]# telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    add zhang 0 0 1 //第一次添加  成功
    q 
    STORED
    add zhang 0 0 1 //第二次添加 失败
    q
    NOT_STORED

    (3)只有数据存在时替换的replace命令

    [root@zhz jiehun]# telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    replace zhang_t 0 0 2    //replace 不存在的元素 失败
    22
    NOT_STORED
    add zhang_t 0 0 2
    12
    STORED
    get zhang_t
    VALUE zhang_t 0 2
    12
    END
    replace zhang_t 0 0 3 //replace 存在的值成功
    200
    STORED
    get zhang_t //值被替换
    VALUE zhang_t 0 3
    200
    END

    2.删除命令   delete

    get zhang_t
    VALUE zhang_t 0 3
    200
    END
    delete zhang_t
    DELETED
    get zhang_t
    END

    二 读取命令

    1.get 命令 获取一个键或多个键的值 多个键以空格分开

    get zhang_t zhang
    VALUE zhang 0 1
    q
    END
    set zhang_t 0 0 3
    100
    STORED
    get zhang_t zhang
    VALUE zhang_t 0 3
    100
    VALUE zhang 0 1
    q
    END

    2 .gets 命令比get返回的值多一个数字 用来判断数据是否发生过改变

    gets zhang_t zhang
    VALUE zhang_t 0 4 185
    1000
    VALUE zhang 0 1 181
    q
    END
    set zhang_t 0 29 4
    1000
    STORED
    gets zhang_t zhang
    VALUE zhang_t 0 4 186
    1000
    VALUE zhang 0 1 181
    q
    END

    3. cas 的意思是 check and set 的意思,只有当最后一个参数鹤gets获取的那个用来判断数据发生改变的那个值相同时才会存储成功,否则返回 exists

    
    

    gets zhang
    VALUE zhang 0 3 188
    dff
    END
    cas zhang 0 0 3 189
    kjf
    EXISTS
    cas zhang 0 0 3 188
    kjf
    STORED
    gets zhang
    VALUE zhang 0 3 189
    kjf
    END

     

    4. 自曾(incr) 自减(decr)命令

    set age 0 0 2
    10
    STORED
    get age
    VALUE age 0 2
    10
    END
    incr age 2
    12
    incr age 2
    14
    get age
    VALUE age 0 2
    14
    END
    decr age 1
    13
    get age
    VALUE age 0 2
    13
    END

    三 状态命令

    1.stats 显示memcachd状态

    stats
    STAT pid 1532 //进程id
    STAT uptime 348167 //服务运行秒数
    STAT time 1372215144 //当前unix时间戳
    STAT version 1.4.14 //服务器版本
    STAT libevent 2.0.10-stable 
    STAT pointer_size 32 //操作系统字大小
    STAT rusage_user 3.997392 //进程累计用户时间
    STAT rusage_system 2.258656 //进程累计系统时间
    STAT curr_connections 5 //当前打开连接数
    STAT total_connections 265 //链接总数
    STAT connection_structures 7 //服务器分配的链接结构数
    STAT reserved_fds 20 //
    STAT cmd_get 1911 //执行get命令次数
    STAT cmd_set 195  //执行set命令次数
    STAT cmd_flush 3 //执行flush命令次数
    STAT cmd_touch 0
    STAT get_hits 1708 //get命中次数
    STAT get_misses 203 //get未命中次数
    STAT delete_misses 11 //delete 未命中次数
    STAT delete_hits 14 //delete命中次数
    STAT incr_misses 0  //incr 自增命令 未命中次数
    STAT incr_hits 0    //incr 命中次数
    STAT decr_misses 0  //decr  自减 未命中次数
    STAT decr_hits 0    //decr 命中次数
    STAT cas_misses 0   //cas 未命中次数
    STAT cas_hits 2     //case  命中次数
    STAT cas_badval 1   //使用擦拭次数
    STAT touch_hits 0
    STAT touch_misses 0
    STAT auth_cmds 0
    STAT auth_errors 0
    STAT bytes_read 164108   //读取字节数
    STAT bytes_written 1520916 //写入字节书
    STAT limit_maxbytes 67108864 //分配的内存数
    STAT accepting_conns 1 //目前接受的连接数
    STAT listen_disabled_num 0
    STAT threads 4 //线程数
    STAT conn_yields 0
    STAT hash_power_level 16
    STAT hash_bytes 262144
    STAT hash_is_expanding 0
    STAT expired_unfetched 4
    STAT evicted_unfetched 0
    STAT bytes 23995  //存储字节数
    STAT curr_items 31 //item个数
    STAT total_items 189 //item总数
    STAT evictions 0 //为获取空间删除的item个数
    STAT reclaimed 17
    END

    2.flush_all 清空所有项目

    flush_all
    OK

    3.后续追加append和prepend前面插入命令

    get age
    VALUE age 0 2
    13
    END
    append age 0 3
    ERROR
    append age 0 0 6
    111111
    STORED
    get age
    VALUE age 0 8
    13111111
    END
    prepend age 0 0 6
    111111
    STORED
    get age
    VALUE age 0 14
    11111113111111
    END

    该命令有一个可选的数字参数。它总是执行成功,服务器会发送 “OK ” 回应。它的效果是使已经存在的项目立即失效(缺省),或在指定的时间后。此后执行取回命令,将不会有任何内容返回(除非重新存储同样的键名)。 flush_all 实际上没有立即释放项目所占用的内存,而是在随后陆续有新的项目被储存时执行(这是由memcached的懒惰检测和删除机制决定的)。

    flush_all 效果是它导致所有更新时间早于 flush_all 所设定时间的项目,在被执行取回命令时命令被忽略。

     memecached还有其他命令 ,这里只是平时我们工作中经常用到的一些,以此文章记录备用。

  • 相关阅读:
    使用Task创建任务
    动态,静态库的发布和使用
    gcc编译
    knockout.js的学习笔记2
    网络爬虫基本原理(一)
    .Net项目分层与文件夹结构
    ASP.NET MVC的客户端验证:jQuery的验证
    ASP.NET MVC的客户端验证:jQuery验证在Model验证中的实现
    CMake 手册详解
    一个真实的应用程序 — 精通ASP.NET MVC 3
  • 原文地址:https://www.cnblogs.com/azheng007/p/3159345.html
Copyright © 2020-2023  润新知