我正在使用Symfony2.4开发一个网站,该网站存储了一些"半静态"数据库中的信息(例如地址,电话,社交媒体网址等),以允许客户端通过后端修改该数据。
该网站运行正常,但我认为应该通过某种方式减少对数据库的访问,以便为每个请求检索这些数据(因为所有页面都会打印出来)。
有没有办法缓存这些数据?一个好的做法是在第一次进入网站时将其存储在用户会话中吗?
感谢。
答案 0 :(得分:1)
例如,您应该使用APC。
假设您已安装并启用php-apc
扩展程序(可以在phpinfo
中查看),这就是您需要做的全部内容:
在config_prod.yml
中(您不希望在dev
环境中缓存结果)
doctrine:
orm:
metadata_cache_driver: apc
result_cache_driver: apc
query_cache_driver: apc
然后在您的查询中:
$queryBuilder
(...)
->useQueryCache(true)
->useResultCache(true)
(...)
首次进行此查询时,它将从数据库中获取数据。下次它将从缓存中获取数据。您还可以设置缓存的生命周期:example
编辑:上面的链接是symfony 1.x文档,但useQueryCache
和useResultCache
的使用在symfony 1.x和Symfony2.x中是相同的。
有关Symfony2 Doctrine配置的更大文档检查this链接为@Francesco Casula提到