PHP可以拿到memcache中的key的过期时间吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP可以拿到memcache中的key的过期时间吗?相关的知识,希望对你有一定的参考价值。

参考技术A

memcached 数据过期机制 lazy expiration

内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间,换句话说,也不能 检测 某个key的过期时间。

可以使用一种较笨的方法:

definde('MEM_TIME_OUT',1800);

$memKey = "testkey";

$val = 'This is test value';

mem_set($key,$val); //调用

function mem_set($key,$val)

$memcache -> set($memKey,$val, 0, MEM_TIME_OUT);

//当调用set 的时候顺便加一条记录时间

$memcache -> set('TIME_'.$memKey,time(), 0, MEM_TIME_OUT);

function mem_get($key,$is_time = false)

$memKey = $is_time ? 'TIME_'.$key : $key;

$val = $memcache -> get($key);

if($is_time)

$val = MEM_TIME_OUT - (time() - $val);

return $val;

以上是关于PHP可以拿到memcache中的key的过期时间吗?的主要内容,如果未能解决你的问题,请参考以下文章

memcached的key,value,过期时间的限制

memcached 能接受的 key 的最大长度是多少?

redis 下key的过期时间详解 :expire

Memcache限制

[Memcache] memcache中的过期时间策略

Memcached delete 命令