yii2 刷新缓存(刷新模型缓存)
Yii2开启表结构缓存,因为当运用模型(model)时,AR的一些公共属性都会从DB中获取,这样会导致服务器负担一些额外的资源开销,实际上对于成品来说,服务器这些开始销是多余的,故应该阻止这种默认行为,把表结构进行缓存起来,提高效率.Yii2的缓存值得深入研究学习.
开启数据库表结构的schema缓存的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //配置文件的方式 'db' =>array( ... 'enableSchemaCache' => true , 'schemaCacheDuration' => 86400, // time in seconds ... ), //区分环境--代码基类里面实现 $dsn = "mysql:host=" . $config[ 'host' ] . ":" . $config[ 'port' ] . ";dbname=" . $config[ 'name' ]; $connection = new Connection([ 'dsn' => $dsn, 'username' => $config[ 'user' ], 'password' => $config[ 'password' ] ]); $connection->charset = "utf8mb4" ; if (YII_ENV == 'prod' ){ //正式环境才开启 $connection->enableSchemaCache = true ; } //........ return $connection; |
当开启了数据库的表结构缓存之后,需要改动或执行一些改变表结构的sql语句的时候,就会出现表结构被缓存了无法立即修复BUG或故障。这个时候就需要刷新或者清除数据库表结构的缓存信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //方法一:清空表结构缓存的方法 //flush all the schema cache Yii::$app->db->schema->refresh(); //clear the particular table schema cache Yii::$app->db->schema->refreshTableSchema($tableName); //方法二:清空所有的缓存--不仅仅是mysql表结构 Yii::$app->cache->flush(); //方法三:使用 yii命令行的方式commond清除缓存 cache/flush Flushes given cache components. cache/flush-all Flushes all caches registered in the system. cache/flush-schema Clears DB schema cache for a given connection component. cache/index ( default ) Lists the caches that can be flushed. //执行 ./yii cache/flush-all |
Yii::$app->cache->flush();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗