我们创建了一些自定义页面,我们被迫在其中运行大量 sql 语句。
数据可以缓存几天或直到我们清除缓存。
我的问题是它不存储缓存。每次功能 Cache::isStored 返回 false。
$cache_id = "test";
if (Cache::isStored($cache_id)) {
/// Query data
Cache::store($cache_id, $data);
}
$data = Cache::retrieve($cache_id);
echo json_encode($data);
我想我用错了缓存功能。但我似乎找不到任何文档。
任何人都可以帮助文档或一些示例代码
最佳答案
Cache::store()
和 Cache::retrieve()
将数据“本地”存储在类静态变量中,这意味着下次刷新页面时数据会丢失。
如果您有多个模块在一个请求中请求相同的数据,但每次刷新页面时都需要刷新数据,则以这种方式缓存数据很有用。
这方面的一个例子是产品的价格计算。假设您在主页上有一个模块,该模块显示每个类别的少量产品,一个新产品模块,一个畅销书模块,每个商店都有一个购物车模块。
对于显示的每个产品,模块将调用价格计算方法,以便将其显示给客户,并且由于某些产品在多个模块中可能相同,这是一种“本地”缓存价格或单个请求的方法。
要缓存一个请求以外的数据,您应该使用
$cache = Cache::getInstance();
$cache->set($key, $data, $ttl);
$cache->get($key);
$cache->exists($key);
设置
$ttl
以秒为单位表示您希望数据保留多长时间或默认为 0,因此它会保留在缓存中,直到您手动清除它。
关于php - Prestashop 缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40381202/