带数据提供程序的Yii2 memcache
更新数据库时,使用dataProvider构造和更新我的密钥/值的正确方法是什么?首先,我从数据库中查找所有新闻。我应该如何添加或更新密钥/值对的值?我一直都是这样,从来没有用疑问来抓住障碍。红色有很多材料,但没有找到正确的方法带数据提供程序的Yii2 memcache,yii2,memcached,dataprovider,Yii2,Memcached,Dataprovider,更新数据库时,使用dataProvider构造和更新我的密钥/值的正确方法是什么?首先,我从数据库中查找所有新闻。我应该如何添加或更新密钥/值对的值?我一直都是这样,从来没有用疑问来抓住障碍。红色有很多材料,但没有找到正确的方法 $mem = new \Memcached(); $mem->addServer("localhost", 11211); $result = $mem->get('categoriesProvider'); if(!$result){ $wher
$mem = new \Memcached();
$mem->addServer("localhost", 11211);
$result = $mem->get('categoriesProvider');
if(!$result){
$whereString = " active = 1 ";
$categoriesProvider = new ActiveDataProvider([
'query' => News::find()->where($whereString),
'pagination' => [
'pageSize' => 6,
'route' => Yii::$app->getRequest()->getQueryParam('first_step'),
],
]);
$mem->set("categoriesProvider", $categoriesProvider);
}
$result = $mem->get("categoriesProvider");
以下是我的看法:
echo ListView::widget([
'dataProvider' => $result,
'itemView' => '_blogCategories',
'layout' => '{items}<ulclass="pagination theme-colored">{pager}</ul>',
'pager' => [
'maxButtonCount' => 3,
'options' => ['class' => 'pagination flRight'],
],
echo ListView::widget([
“数据提供程序”=>$result,
“项目视图”=>“\u博客类别”,
“布局”=>“{items}{pager}”,
“寻呼机”=>[
“maxButtonCount”=>3,
'选项'=>['class'=>'分页右'],
],
])) 作为memcached和yii2用户本人,我可以建议您将缓存放在数据和提供者之间,最简单的方法是查询您需要的数据,然后以最轻的格式缓存结果(作为项目数组,其中项目本身就是数组),然后使用它显示数据或传递给可以显示数据的提供者 Memcached的YII2接口允许您利用新方法getOrSet(),在该方法中,您可以使用回调来生成要缓存的数据(如果数据还不存在),从而减轻您自己创建此类流的负担 一般来说,将复杂对象的实例存储在缓存中并不像YII2中那样是个好主意