public function set($key, $value, $expire = 0)
{
$ttl = $this->ttl($expire);
// negative TTLs don't always seem to properly treat the key as deleted
if ($ttl < 0) {
$this->delete($key);
return true;
}
// lock required for CAS
if (!$this->lock($key)) {
return false;
}
$success = $this->apcu_store($key, $value, $ttl);
$this->expire($key, $ttl);
$this->unlock($key);
return $success;
}