关于phpmemcacheset的信息

发布时间:2022-11-25

本文目录一览:

  1. php操作memcacheq
  2. PHP可以拿到memcache中的key的过期时间吗?
  3. php中memcached怎么存多维数组

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,你所需要做的是:

  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 了