浏览文章

文章信息

Magento 2 - 如何将自定义数据保存到缓存中|Magento 2 - How To Save Custom Data To Cache 13433

Magento 2 - 如何将自定义数据保存到缓存中

发表于Magento 2由BrainActs发表

2018年6月17日,下午4:59:07


为了在处理很少更新或容量较大的数据时保持Magento 2平台的性能,我们可以使用缓存机制。

  1. 创建模型或使用现有模型,并将缓存接口加载到构造函数中。
    public function __construct(
       Magento\Framework\DataObjectFactory $dataObjectFactory,
       Magento\Framework\App\CacheInterface $cache,
       Json $serializer = null) {   $this->dataObjectFactory = $dataObjectFactory;   $this->cache = $cache;   $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class);
    }
  2. 要将数据保存在缓存中,我们调用save方法
    $this->cache->save($data, $identifier, $tags, $lifeTime);

    由于缓存机制只能存储字符串,因此$ data参数是一个字符串,如果需要保存数组,则需要使用序列化程序。

    首先,我们序列化数据$ data = $ this-> serializer-> unserialize($ data),然后将其传输到缓存以进行保存。

    $ identifier - 存储信息块的唯一标识符。

    $ tags = 标签数组 - 可能为空。

    $ lifeTime - 块被认为无效的时间(以秒为单位),默认为null - 它始终显示在缓存中并且有效。

  3. 从缓存中获取数据
    $this->cache->load($identifier)
  4. 如果没有数据或生命周期已过期,则该方法返回false。

    如果在录制之前将数据序列化,请不要忘记在从缓存接收数据后转换数据


原创