下面分享一个静态缓存的写入及读取的基础思想
class File
{
private $_dir;
//文件后缀
const EXT = '.txt';
public function __construct()
{
//定义路径为文件同级目录下的files文件夹
$this->_dir = dirname(__FILE__).'/files/';
}
public function cacheData($key, $value='', $path='')
{
//定义文件名
$filename = $this->_dir.$path.$key.self::EXT;
//将value值写入缓存
if($value !== ''){
//value为空时,清空缓存
if(is_null($value)){
return unlink($filename);
}
//获取文件路径
$dir = dirname($filename);
//判断文件路径是否存在
if(!is_dir($dir)){
mkdir($dir, 0777);//创建文件路径
}
//写入缓存,成功返回写入字节数,失败返回false
return file_put_contents($filename, json_encode($value));
}
//读取缓存
if(!file_exists($filename)){
return false;
} else {
return json_decode(file_get_contents($filename),true);
}
}
}
Redis 基础操作
设置缓存:set key value
获取缓存:get key value
设置缓存及过期时间:setex key exptime value
删除缓存:del key
php上的Redis操作
$redis = new Redis();
$redis->connect('host', 'port');
$redis->set('key', 'value');
$redis->get('key');
$redis->setex('key', 'exptime', 'value');
php上Memcache操作
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 'port');
$memcache_obj->set('key', 'value', 'exptime');
$memcache_obj->get('key');