php缓存控制器,PHP – MVC的缓存层 – 模型或控制器?

本文探讨了两种缓存实现策略:在模型内部处理缓存的单个获取方法和控制器中进行批量操作的方法。方法1将缓存检查和数据库查询集中在模型中,简单易维护,但可能造成大量请求。方法2利用memcached的多组操作提高性能,但代码复杂度增加,维护难度提升。作者寻求读者对于这两种方法的反馈和建议。
摘要由CSDN通过智能技术生成

我有一些关于在哪里实现缓存部分的想法.你最适合实施的地方在哪里?

在每个模型里面,还是在控制器里?

方法1(伪代码):

// mycontroller.php

MyController extends Controller_class {

function index () {

$data = $this->model->getData();

echo $data;

}

}

// myModel.php

MyModel extends Model_Class{

function getData() {

$data = memcached->get('data');

if (!$data) {

$query->SQL_QUERY("Do query!");

}

return $data;

}

}

方法2:

// mycontroller.php

MyController extends Controller_class {

function index () {

$dataArray = $this->memcached->getMulti('data','data2');

foreach ($dataArray as $key) {

if (!$key) {

$data = $this->model->getData();

$this->memcached->set($key, $data);

}

}

echo $data;

}

}

// myModel.php

MyModel extends Model_Class{

function getData() {

$query->SQL_QUERY("Do query!");

return $data;

}

}

思考:

方法1:

>无多重/多组.如果返回大量的密钥,则会导致开销.

>更容易维护,所有数据库/缓存处理都在每个模型中

方法2:

使用更好的性能 – multiset / multiget

>需要更多代码

>更难维护

告诉我你的想法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值