PHP 提供了多种实现缓存的方法,以提高性能并减少服务器负载。 以下是一些常用的缓存技术:
- 文件缓存:
在服务器上存储数据。 对于文件来说,这是一种简单的缓存方法。 您可以使用内置的 file_put_contents()
和 file_get_contents()
函数读取和写入缓存文件。
函数 cache_data($key, $data, $ttl = 3600) {
$filename = '缓存/'。 md5($key);
$now = 时间();
if (file_exists($filename) && ($data_from_file = file_get_contents($filename) ) !== false) {
$data_from_file = 串行if($data_from_file) ;
if ($now - $data_from_file['时间'] < $ttl) {
返回 $data_from_file['数据'];
}
}
$data_to_store = [
'数据' = > $data,
'时间' => $now,
];
file_put_contents($文件名, 序列化($data_to_store));
返回 $data;
}
$key = 'my_data_key';
$data= ['姓名' => 'John Doe', '年龄' => 30];
$cached_data = cache_data($key, $data ) ;
- Memcached:
Memcached是高性能分布式内存。 对象缓存系统可用于: 缓存各种数据类型。 首先,您需要安装并启动 Memcached 服务器,然后将 mem 与 PHP 结合使用。cached 扩展用于连接和使用缓存。
//安装memcached并启动服务器
// sudo apt-get install memcached
// sudo 服务 memcached start
// 安装 PHP 的 memcached 扩展
// pecl 安装 memcached
// echo "extension=memcached.so" | sudo tee /etc/php/7.x/mods-available/memcached.ini
// sudo phpenmod memcached
// sudo 服务 php7.x-fpm 重新启动
$memcached = 新 Memcached();
$memcached->addServer('localhost', 11211);
函数 cache_data($键,$data,$ttl = 3600) {
全球 $memcached;
$cache_key = 'my_data_key';
if ($mem缓存->get($cache_key)) {
返回 $memcached->get($cache_key);
}
$data_to_store = [
'数据' => $data,
'time' => 时间(),
];
$memcached->设置($cache_key,$data_to_store, $ttl);
返回 $data;
}
$key = 'my_data_key';
$data = ['姓名' => 'John Doe', 'age' => 30];
$cached_data = cache_data($key, $data);
- 女士们:
[小时]
[小时]
Redis 是一个高性能的键/值数据库,可以用作缓存系统。 首先,您需要安装并启动 Redis 服务器,然后使用 PHP redis
扩展连接到缓存并使用缓存。
//安装Redis并启动服务器
// sudo apt-get install redis-server
// sudo service redis-server start
// 在 PHP 中安装 redis 扩展
// pecl 安装 redis
// echo "extension=redis.so" | sudo tee /etc/php/7.x/mods-available/redis.ini
// sudo phpenmod redis
// sudo 服务 php7.x-fpm restart
$redis = 新建 Redis();
$redis->连接( '127.0.0.1',6379);
函数 cache_data($key, $data,$ttl = 3600) {
全局 $redis ;
$cache_key = 'my_data_key';
如果 ($redis->存在($cache_key)) {
返回 json_decode( $redis->get($cache_key), true);
}
$data_to_store = [
'数据' => $data,
'时间' => 时间(),
];
$redis->setex($cache_key, $ttl, json_encode($data_to_store));
返回 $data;
}
$key = 'my_data_key';
$data = ['name' => 'John Doe', '年龄' => 30];
$cached_data = cache_data($key, $data);
您可以根据项目的需要和性能要求在这些缓存方法之间进行选择
以上内容来源于网络,不代表本站所有观点:关注zhujipindao.com
评论前必须登录!
注册