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,表明此数据永不过期。

posted @ 2016-08-10 08:30  chenjiacheng  阅读(169)  评论(0编辑  收藏  举报