PHP缓存(文件缓存,memcache,redis)

jianfly.com 2019-01-31 1879次浏览

静态缓存

保存在磁盘上的静态文件,用PHP生成数据放入静态文件中

PHP操作缓存

1.生成缓存

2.获取缓存

3.删除缓存

<?php
class File {
	private $_fir;
	const EXT = '.txt';
	public function __construct() {
		$this->_dir = dirname(__FILE__) . '/files/';//当前文件目录下的files
	}
	/**
	 * key 文件名
	 * value 值
	 * path 路径
	 */
	public function cacheData($key, $value = '', $path = '') {
		$filename = $this->_dir . $path . $key . self::EXT;
		if($value !== '') { // 将value写入缓存
			if(is_null($value)) {
				//删除缓存
				return @unlink($filename);
			}
			$dir = dirname($filename);
			if(!is_dir($dir)) {
				mkdir($dir, 0777);//创建目录
			}
			return file_put_contents($filename, json_encode($value));
		}
		if(!is_file($filename)) {
			return false;
		} else {
			return json_decode(file_get_contents($filename), true);
		}
	}
}

Memcached , Redis

1.Memcached 和 Redis都是用来管理数据的

2.他们数据都是存放在内存里的

3.Redis可以定期将数据备份到磁盘(持久化)

4.Memcached只是简单的key/value缓存

5.Redis不仅仅支持简单的k/v类型的数据,同时还提供list, set, hash等数据结构的存储

Redis数据操作

1.开启redis客户端

2.设置缓存值 – set index-mk-cache ‘数据’

3.获取缓存数据 – get index-mk-cache

4.设置过期时间 – setex key 10 ‘cache’

5.删除缓存 – del key

php操作Redis

1.安装phpredis扩展

2.php链接redis服务-connect(127.0.0.1, 6379)

3.set 设置缓存

4.get 获取缓存

<?php
//Redis
	$redis = new Redis();
	$redis->connect('127.0.0.1', '6379');//地址,端口号
	$redis->set('singwa', 123);//设置值
	var_dump($redis->get('singwal'));//获取值,不存在返回false
	$redis->setex('singwa2', 15, 'sdahdahdadad');//15s过期

php操作memcache

1.安装memcache扩展

2.链接服务-connect(‘memcache_host’, 11211);

3.set 设置缓存

4.get 获取缓存