时间戳转换工具

前面一张文章https://www.6kou.cn/article/article_id/770.html讲解了yac以及yac扩展的安装,来讲讲具体的项目中的应用


应用场景及优势

1. php进程之间共享一些简单的数据

2. 高效的缓存一些页面结果,特别是一些静态页面,读大于写的页面

3. yac是基于php扩展的,不需要像其他缓存那样转换为json存储,可以直接存储string、array、object


具体代码应用

<?php

class cacheYac
{
private $yac;

function __construct()
{
if (!class_exists('Yac')) {
exit("还未安装yac拓展");
}
$this->yac = new Yac();
}

/**
* desc 获取yac缓存
*/
function get($name, $gz = false)
{
$value = $this->yac->get($name);
if ($value) {
$value = unserialize($value);

if ($value ['time'] > time()) {
$cachedata = unserialize($value['data']);
if ($gz) {
$cachedata = gzuncompress(base64_decode($value['data']));
}
unset($value);
return $cachedata;

} else {
$this->yac->delete($name);
return false;
}
} else {
$value = false;
}
return $value;
}

/**
* desc 设置yac缓存
*/
function set($name, $value, $effective = 1800, $gz = false)
{
if (is_null($value)) {
// 删除缓存
return $this->yac->delete($name);
} else {
$data ['data'] = serialize($value);
if ($gz) {
$temp = gzcompress($value, 9);
$data ['data'] = base64_encode($temp);
}
$data ['time'] = time() + $effective;
$this->yac->set($name, serialize($data));
return null;
}
}

/**
* desc 清除所有yac缓存
*/
function clear()
{
return $this->yac->flush();
}
}


联系我们 - 首页 - 关于我们
Copyright © 2017-2022 iteam. All Rights Reserved. Current version is 2.50.0.
粤ICP备17021424号
VV:34945 UV:113706 PV:388234