MemCached add命令的用法详解

  增加: add 往内存增加一条数据

  命令格式:

add key flag expiretime bytes\r\n

data\r\n //跨行所加的一些数据

1key: 给这个值起一个固定的名字

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

2flag: 标志 是一个整数

3expire 有效期

//过期时间

4length 添加的缓存的长度

flag的意义

memcache 基于简单的文本协议,传输的东西,理解成字符串来存储

array() object()

  有经验的同学会将array() object() 转成json_encode()这个字符串,存到 memcached里边。那怎么来区分当时是存的是字符串还是array()object()呢?这就是flag的意义。

  例子:

add title 1 0 16

welcome to maizi

Stored

  示例:

  如下我们增加一个web 过期的标志是0,过期的时间是10秒,长度是5

  可以发现,过了时间就没有了


expire 有效期

  设置缓存的有效期有三个方式

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

2)使用时间戳的方式,就是指定明天某个时候失效,这个场景主要运用于抢购,如抢购手机,希望明天的这个时候缓存失效。

  这个是当前unix下的时间戳


让它在当前时间戳的99秒后失效


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


这里将expire设置为030后会自动失效,如果不失效也会被其他数据挤掉。


 



原文链接:http://www.maiziedu.com/wiki/memcache/add/

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值