本文概述
- 前端适配器
- 后端适配器
什么时候实现Cache?
- 当我们经常使用复杂的计算时, 会返回相同的结果。
- 当我们使用许多助手时, 生成的输出总是相同的。
- 当我们不断访问数据库数据时, 其数据很少更改。
1)前端:前端检查密钥是否已过期。在存储之前和从后端检索数据之后, 还应对数据进行其他转换。
2)后端:后端部分负责通信, 读取或写入前端所需的数据。
实作
【Phalcon使用缓存】下面的代码通过实现前端和后端适配器, 提供了2天缓存的基本缓存过程。
<
?phpuse Phalcon\Cache\Backend\File as BackFile;
use Phalcon\Cache\Frontend\Data as FrontData;
// Create an Output frontend. Cache the files for 2 days
$frontCache = new FrontData(
[
'lifetime' =>
172800, ]
);
// Create the component that will cache from the 'Output' to a 'File' backend
// Set the cache file directory - it's important to keep the '/' at the end of
// the value for the folder
$cache = new BackFile(
$frontCache, [
'cacheDir' =>
'../app/cache/', ]
);
?>
前端适配器
Adapter | Description |
---|---|
Phalcon\Cache\Frontend\Output | 从标准PHP输出读取输入数据。 |
Phalcon\Cache\Frontend\Data | 它用于缓存任何类型的PHP数据(大数组, 对象, 文本等)。数据先序列化, 然后再存储在后端。 |
Phalcon\Cache\Frontend\Base64 | 它用于缓存二进制数据。使用base64_encode序列化数据, 然后将其存储在后端。 |
Phalcon\Cache\Frontend\Json | 数据先以JSON编码, 然后再存储在后端。检索后解码。该前端对于与其他语言或框架共享数据很有用。 |
Phalcon\Cache\Frontend\Igbinary | 它用于缓存任何类型的PHP数据(大数组, 对象, 文本等)。数据先使用Igbinary序列化, 然后再存储在后端中。 |
Phalcon\Cache\Backend\Xcache | 将数据存储在XCache中。 |
Phalcon\Cache\Backend\None | 它用于缓存任何类型的PHP数据而无需对其进行序列化。 |
Adapter | Description | Info | 所需的扩展名 |
---|---|---|---|
Phalcon\Cache\Backend\Apc | 将数据存储到备用PHP缓存(APC)。 | APC | APC |
Phalcon\Cache\Backend\Apcu | 将数据存储到APCu(不带操作码缓存的APC) | APCu | APCu |
Phalcon\Cache\Backend\File | 将数据存储到本地普通文件 | ||
Phalcon\Cache\Backend\Mongo | 将数据存储到Mongo数据库。 | MongoDB | MongoDB |
Phalcon\Cache\Backend\Redis | 将数据存储在Redis中 | Redis | Redis |
Phalcon\Cache\Backend\Xcache | 将数据存储在XCache中。 | XCache | XCache |
Phalcon\Cache\Backend\Memcache | 将数据存储到内存缓存服务器。 | Memcache | Memcache |
推荐阅读
- Phalcon类自动装载器
- Phalcon功能介绍
- 让App中增加LruCache缓存,轻松解决图片过多造成的OOM
- 听课笔记。记录|redis复习
- 中间件锦囊|redis进阶--企业级解决方案(缓存预热、缓存雪崩、缓存击穿、缓存穿透、性能指标监控)
- Dapper扩展SQL跟踪及全局缓存通知
- AppDir创建缓存目录
- 如何在Windows 11中清除缓存(7种有效方法指南)
- 安卓三级缓存(初级进阶中级)