本文目录一览:
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 的过期时间。 可以使用一种较笨的方法:
define('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,你所需要做的是:
- 选取一个合适 key,比如
"POST_OF_USER_" . $userId
- 调用 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 了