zoukankan      html  css  js  c++  java
  • memcache的基本操作

    使用telnet连接memcache服务器端

    memcache的默认端口号是11211

    语法:telnet ip地址 端口号

    注意:telnet客户端无法使用的解决方案:

    一、设置数据

    1. 添加数据

    语法:add key 是否压缩(0|1) 缓存时间 数据的长度

    key:键的名称
    是否压缩:0表示不压缩,1表示要压缩,压缩的目的让数据变小,存储更多的数据。
    缓存时间:失效时间,表示过了该时间数据就失效。
    数据的长度:单位是字节

    设置一个key为name不压缩,缓存时间为60,数据的长度是5,值为jason

    注意:在使用add添加数据时,如果该键已经存在,则添加失败,不会覆盖。

    2. 修改数据

    语法:replace key 0|1 缓存时间 数据的长度

    注意:如果键不存在,则修改失败。

    3. 设置数据

    语法:set key 0|1 缓存时间 数据长度

    如果键已经存在,则是修改,如果键不存在,则是添加。

    二、获取数据

    语法:get key

    三、删除数据

    语法:delete key

    flush_all 是删除所有的缓存项

    四、其他命令

    incr 增加指定的值

    语法:incr key number

    decr 减少指定的值

    语法:decr key number

    比如有1000件商品,需要在60秒内抢购。
    一开始就设置number的值为1000,当用户抢购时执行decr number,如果执行后返回的值大于0则说明抢购成功。

    五、状态命令

    stats

    通过查看状态的参数,主要是计算命中率:
    get_hits/cmd_get = 得出一个命中率,命中率越高越好,如果命中率比较低,则需要调整缓存项。

    六、缓存时间的设置的讨论

    在设置缓存时间有两种设置方式:

    1. 使用秒数(时间间隔)<= 2592000
    2. 使用到期的时间戳 该时间戳必须要大于当前的时间戳才有效。

    在设置时,设置的参数都是整数,如何区分是时间戳还是时间间隔呢?

    在使用时间间隔设置缓存时间时,有一个限制的,不能超过30天,30*24*3600秒2592000

    比如如果要把一个缓存项失效时间设置为2个月如何设置呢?

    time()+30*24*3600*2

    比如要把一个缓存项失效时间设置为10天如何设置?

    有两种设置方案:
    使用时间间隔:10*24*3600
    使用时间戳:time()+10*24*3600

    比如如果一个缓存项失效时间设置为123489,该值是时间戳还是时间间隔?

    如果该值小于等于2592000则是时间间隔,如果大于该值是时间戳。

    注意:如果缓存时间设置为0,表明此数据永不过期。

  • 相关阅读:
    USB
    Google
    机型参数
    mac
    反编译
    xcode
    Ios 消息推送
    真机:特殊
    Android
    object-c
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/6522576.html
Copyright © 2011-2022 走看看