在生产laravel网站上运行php artisan:clear命令可以吗?

在生产laravel网站上运行php artisan:clear命令可以吗?,php,laravel,server,composer-php,laravel-artisan,Php,Laravel,Server,Composer Php,Laravel Artisan,我在DigitalOcean NGINX服务器上托管了一个生产Laravel网站,每次git推送新更新时,我都会运行以下命令: php artisan config:clear php artisan cache:clear php artisan route:clear php artisan view:clear composer dump-autoload 这是一种很好的做法,还是在我的服务器上运行这些命令会导致问题?除缓存之外的所有清除都可以作为部署脚本的一部分 但是在生产环境中运行

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

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

composer dump-autoload

这是一种很好的做法,还是在我的服务器上运行这些命令会导致问题?

缓存之外的所有
清除
都可以作为部署脚本的一部分

但是在生产环境中运行
php-artisan-cache:clear
风险极高,会导致意外结果,例如丢失所有关键数据

假设您的缓存驱动程序、队列驱动程序、会话驱动程序是
redis
,它们都共享相同的redis实例(相同的主机)。执行
cache:clear
时,将执行以下方法

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

    return true;
}
它所做的是执行redis的
flushdb
命令。它将刷新所有用户的会话、所有排队作业、所有缓存项、所有广播相关代码(如果它们位于同一数据库中)。这是你的电话号码

删除当前选定数据库的所有键。这个命令永远不会失败


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

我同意@Ersoy的回答,但只是想补充一点

我在push上运行这些命令,而不是使用clear,我重新缓存配置和路由。 尽管要记住,route:cache并不能处理所有可能的路由,请参阅laravel文档

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

composer install --no-dev

运行composer dump autoload怎么样?它可以/应该是部署脚本的一部分。转储自动加载没有什么坏处@Jakescervino运行:cache或:clear有什么区别?clear会擦除数据,cache,存储数据的编译版本,以提高速度,尽管我主要使用config:cache作为共享主机,因为所有站点共享同一个环境,为什么会导致任何问题?你看到了吗?仅仅因为我没有“看到”任何问题,并不意味着没有问题。