我要做的是将所有结果缓存在一个很少更改的mysql表中,这样可以减少对数据库的调用,提高查询速度。里面大约有10万张唱片。
有没有一个库可以同步这个表中所做的更改,比如说当一个记录被更新或插入时,redis缓存也会被作废和更新。
我见过一个用于elasticsearch的,但没有用于redis的。
从此页:yii将数据从一个模型复制到另一个模型
有这样的评论:
可以通过以下方式获取所有模型属性:
$data=$model->属性;并将它们分配给另一个模型
$anothermodel=新建anotheractiverecord();
$anothermodel->setattributes($data);
现在,另一个模型将从$data中提取它所能提取的任何东西
我很好奇,redis缓存是否也能以类似的方式“镜像”数据库表中的数据?
或者这只是一个坏主意,最好在查询出现时缓存它,或者有更好的方法。
1条答案
按热度按时间hpxqektj1#
可以基于启用缓存https://www.yiiframework.com/doc/guide/2.0/en/caching-data
然后使用查询生成器级别上本机定义的查询缓存
还可以基于表使用缓存依赖项(一些条件,如if
max(updated_at)
是否更改)。