zoukankan      html  css  js  c++  java
  • memcached的常规操作:增删改查【转】

    memcached的命令使用方法如下:

    1. cmd上登录memcache

    # telnet 10.70.67.182 11211
    Trying 10.70.67.182...
    Connected to 10.70.67.182.
    Escape character is '^]'.
    

    2、列出所有keys

    stats items
    STAT items:1:number 40327
    STAT items:1:age 10205145
    STAT items:1:evicted 0
    STAT items:1:evicted_time 0
    STAT items:1:outofmemory 0
    STAT items:1:tailrepairs 0
    STAT items:2:number 30839
    STAT items:2:age 46660568
    STAT items:2:evicted 0
    STAT items:2:evicted_time 0
    STAT items:2:outofmemory 0
    STAT items:2:tailrepairs 0

    3、通过itemid获取key

    接下来基于列出的items id,本例中为7,第2个参数为列出的长度,0为全部列出

    stats cachedump 7 0
    ITEM APP_STANDARD [743 b; 1540376680 s]
    END

    4、通过get获取key值

    get APP_STANDARD
    VALUE APP_STANDARD 0 743
    END

    1、linux下启动memcache

    [root@localhost ~]# memcached -d -m 512  -u root  -p 12266 -c 256

    参数名称及意义:

    -d   以守护进程方式启动。如果该参数没有指定,当按ctrl+c命令结束,memcache自动关闭

    -m  分配给memcache使用的最大内存数 单位是m,默认是64m

    -u   指定运行memcache的用户

    -l:   指定监听的ip地址

    -p   指定监听的tcp端口号,可以通过-u指定udp端口.默认是11211

    -c   最大并发连接数

    -P   报错进程id的文件

    2、连接memcache

    linux下一般使用telnet连接memcache服务,如下:

    [root@localhost ~]# telnet 127.0.0.1 11266 

    3、基本操作

    添加修改key-value,命令格式:

    <command> <key> <flags> <exptime> <bytes>
    

    参数名称及意义:

    command   add, set或 replace

    key            缓存的名字

    flag           16位无符号整数,和key要存储的数据一起存储,并在程序get缓存时,返回。

    exptime     过期时间,0 表示永远不过期,如果非零,表示unix时间或距此秒数

    bytes         存储数据的字节数

               表示换行回车

    【补充】

    key:学过计算机基础和学过计算机数据库结构的人都知道,计算机有个比较常用的结构叫hash,这是数据结构中最重要的数据结构。key和value就是通过hash,hash有一个自己独造的函数,通过key计算某个固定的值,将value存到这个key计算的固定的值里面,当我们通过get取得时候,通过key我们就可以很快的在内存中找到我们当时存的key所对应的value的值,所以速度非常快;

    flag:memcache 基于简单的文本协议,传输的东西,理解成字符串来存储,有经验的同学会将array() object() 转成json_encode()这个字符串,存到 memcached里边。那怎么来区分当时是存的是字符串还是array()或object()呢?这就是flag的意义。

       例子:

          add title 1 0 16

          welcome to maizi

          Stored

     expire:设置缓存的有效期。它有三种方式:

                  1)设置它的秒数,从当前的时间算起,到第n秒失效。比如失效时间是10秒,就是从当前的时间算,过来10秒你再去get这个web的时候,它是没有的。

                  2)使用时间戳的方式,就是指定明天某个时候失效,这个场景主要运用于抢购,如抢购手机,希望明天的这个时候缓存失效,可以从相关网站获得时间戳信息如下。

                        

                   3)将expire设置为0,设置为0后就不自动失效,有的人以为这个是一个永久数据,这种理解是错误的。这里说一种极端的方式,比如memcache挂了,再重启memcache服务,但这里面的数据就都不会存在                        了。我们在编译memcache的时候,使用了一个最长的常量,默认时间为30天,所以即使你设置为0,30天以后,它的数据也会失效。还有一种情况是可能我等不到这30天,就会被新的数据挤出去,这个就                      是老数据被踢的这个现象。

    命令结果:

    STORED #表示成功

    NOT_STORED  #表示失败

    CLIENT_ERROR bad data chunk  #输入数据有误

    添加缓存:

    add kk 1 0 4  #回车
    1234  #回车
    STORED 

    如果key已经存在,则会添加失败。如果数据 不是4个字节 应该会提示数据错误。

    修改缓存:

    replace kk 1 0 2  #回车
    11  #回车
    STORED  

    key存在时,成功;不存在时,失败。

    设置缓存:

    set kk 1 0 4  #回车
    1234 #回车
    STORED  

    key不存在时,添加【add】;已存在时,替换【replace】。

    读取:

    get kk
    VALUE kk 1 4
    1234

    多个key时,用空格隔开。

    删除:

    delete kk #回车
    DELETED

    清空所有缓存:

    flush_all  
    OK

    查看缓存服务器状态:

    stats

    image

    image

    其他命令:

    version  #显示版本号
    stats reset #清空统计数据
    stats slabs #显示各个slab的信息,包括chunk的大小、数目、使用情况等
    stats items  #显示各个slab中item的数目和存储时长(最后一次访问距离现在的秒数)

    退出telnet:

    ctrl+]
    tlenet>quit

    转自

    memcache的基本操作 - 章三丰 - 博客园 https://www.cnblogs.com/zhangwuji/p/10017771.html

    Memcache 查看列出所有key方法 – 运维生存时间 http://www.ttlsa.com/memcache/memcache-list-all-keys/

  • 相关阅读:
    selenium自动化测试CSS定位
    思想重铸(转自知乎)
    闭环思维
    20170503xlVBA房地产数据分类连接
    20170517xlVBA添加数据透视表
    20170617xlVBA销售数据分类汇总
    20170621xlVBA跨表转换数据
    20170612xlVBA含方框文档填表
    20170612xlVBA多文件多类别分类求和匹配
    20170617xlVBA调查问卷基础数据分类计数
  • 原文地址:https://www.cnblogs.com/paul8339/p/13496313.html
Copyright © 2011-2022 走看看