php - 可以运行php artisan :clear commands on a production laravel website?

标签 php laravel server composer-php laravel-artisan

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

去年关闭。




Improve this question




我在 DigitalOcean NGINX 服务器上托管了一个生产 Laravel 网站,每次我 git push 新更新时,我总是运行以下命令:

php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear

composer dump-autoload

这是一个好习惯,还是在我的服务器上运行这些命令会导致问题?

最佳答案

所有clear s 除外 cache一个可以是您的部署脚本的一部分。

但是正在运行 php artisan cache:clear在生产中是非常危险的,会导致意想不到的结果,例如丢失所有关键数据。

假设您的缓存驱动程序、队列驱动程序、 session 驱动程序是 redis它们都共享同一个 redis 实例(同一个主机)。当你执行 cache:clear它将执行以下方法

/**
 * Remove all items from the cache.
 *
 * @return bool
 */
public function flush()
{
    $this->connection()->flushdb();

    return true;
}

它所做的是执行 flushdb redis 命令。它将刷新所有用户的 session 、所有排队的作业、所有缓存的项目、所有与广播相关的代码(如果它们在同一个数据库中)。这是method

Delete all the keys of the currently selected DB. This command never fails.



编辑:如果他们使用相同的redis驱动程序+相同的主机但不同的数据库,那么这可能不会导致副作用问题,但需要手动配置为不同的组件设置不同的数据库。

关于php - 可以运行php artisan :clear commands on a production laravel website?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61879288/

相关文章:

php - Doctrine QueryBuilder 按字段优先级排序结果

具有像素尺寸的 PHP 自动换行

javascript - SELECT Count 从 mysql 到 Google Geo Chart

mysql - 使用 MySQL 的 Laravel 迁移速度很慢

java - 如果我在 web.xml/session-config 中使用 -1 , session 超时永远不会发生

php - 使用 PHP LDAP 更改(而不是重置)用户密码

php - Laravel - 按数字(整数)排序​​,即使列类型是字符串

php - 在 Laravel 5 中将变量从路由传递到 Controller

java - 多线程服务器客户端应用程序多次发送响应

javascript - 基于 JavaScript 文件上的 random() 执行不同的函数