本文目录一览:
php操作memcacheq
$arr=array(1,2,3,4,5);
$q-set("queque_1",$arr);
这样,你取的时候就会是一个数组了
PHP可以拿到memcache中的key的过期时间吗?
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中memcached怎么存多维数组
PHP的Memcached的驱动会自动进行serialize和unserialize,你所需要做的是:
1. 选取一个合适key,比如 "POST_OF_USER_" . $userId
2. 调用set函数把数据丢进去就行了
示例代码:
全选复制放进笔记// 0. 准备:
$cache = new Memcache();
$cache-connect('127.0.0.1', 11211); // 请替换为你的memcache服务器地址和端口
$userId = // 你自己想办法获取...
// 1. 构造cache KEY
$cacheKey = "POSTS_OF_USER_" . $userId;
// 2. 从缓存中获取数据
$posts = $cache-get($cacheKey);
if ($posts === false){
// 3. 缓存失效了,加载数据
$posts = // 你自己想办法加载数据
// 4. 保存数据到缓存中
$cache-set($cacheKey, $posts);
}
// OK,可以使用posts了