作者alpe (薛丁格的猫)
看板PHP
标题Re: [请益] Phalcon Model Cache
时间Thu Jan 16 23:46:07 2014
※ 引述《b60413 (None)》之铭言:
: 按照Phalcon官方文件课程,
: 目前正学习到Cache这个章节,
: 主要问题是我使用内建的\Phalcon\Cache\Frontend\Data去储存资料,
: 时常会导致记忆体不够配置,
: (使用model取得table资料, 再用Paginator来做分页, 资料约45万笔)
不要啊!! 内建的 paginator 是抓row出来在做分页. 那很恐怖的
1次查询就吃了你5xxMB, 多个2~3个就爆了吧.
请自己重建一个 paginator 实做sql limit 吧!!
当初看paginator第一件事就是确认是那种方式
: 而实际资料只占用500多MB,
: 但仍然出现记忆体配置不足的状况,
: 我想可能是物件的方式太占用记忆体,
印象中 ModelCache 是做DB中间层, 减少DB query次数
所以是吧model 资料存起来, 但你要用的时候, 还是会
转回去 model\result 物件, 并不会减少你记忆体用量
可能要转cache 还多用了一些
: 我想他也许没这麽聪明,
: 可能要自己先将资料转换成Json格式才有办法做储存,
他留了很多弹性, 所以可以选择要用那种格式放到Cache
这是 FrontEnd/Cache/Data 的用处, 决定要放那种资料形式
$di->set('cache', function() {
$redis = new Redis();
$redis->connect($host, $cport);
$frontend = new Phalcon\Cache\Frontend\Data(array('lifetime' =>
$lifetime));
$cache = new Phalcon\Cache\Backend\Redis($frontend, array('redis' =>
$redis));
return $cache;
});
: (在find时, 有增加参数hydration => Resultset::HYDRATE_ARRAYS, 再用json_encode)
: 但结果仍然是一个空物件,
: 我想也许是我快取的方法使用不对,
: 於是改用modelsCache的方式去实作,
: 此时系统却出现下面错误,
: Phalcon\\Mvc\\Model\\Query::execute():
: Call to undefined method setisfresh() on class stdClass
: 想请问,
: Phalcon提供的Cache,
: 有没有Phalcon官方文件,
: 范例时常有问题八卦...囧rz
对. 1.2.4 file 处理有个 getRealType... 回传 Null
啥! 去爬 source 发现没实做完! 啊老师的, 还"建议"要用这个!
还有 dispatcher 那边的鬼
--
人大抵上既没有自己想像中那麽幸福,也没有那麽不幸…重要的是,
是否对於生存抱着希望或已厌倦
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.31.105.62
1F:推 b60413:感谢提醒分业的实作, 会想这测试 01/20 12:56
2F:→ b60413:主要是因为想要了解这套Framework的效能 01/20 12:56
3F:→ b60413:所以是抱持着很怀疑的心态去做这样的测试 01/20 12:57
4F:→ b60413:当时并没有先看该Framework的Source 01/20 12:57