Thinkphp8 laravel加速方法

作者: 时间: 2025-01-21 评论: 暂无评论
  1. 启用路由缓存
    在 config/route.php 文件中启用路由缓存,可以减少路由匹配的时间。

return [

// 其他路由配置...
'url_cache' => true,

];

  1. 启用配置缓存
    在 config.php 文件中启用配置缓存,将所有配置文件合并并缓存,减少文件读取和解析的时间。
  2. 数据库查询缓存
    对于频繁查询且不经常变化的数据,可以使用查询缓存来提高性能。在数据库配置文件 config/database.php 中启用查询缓存。

return [

// 其他数据库配置...
'cache' => true,

];

  1. 启用 OPcache
    确保 PHP 的 OPcache 已启用并正确配置。在 php.ini 文件中启用 OPcache。

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.save_comments=1
opcache.revalidate_freq=60

  1. 使用静态内容
    将不经常变化的 CSS、JavaScript 和图片等静态资源缓存到客户端,通过设置合理的缓存头(Cache-Control)来实现。
  2. 数据压缩
    使用 Gzip 或 Deflate 压缩输出内容,减少网络传输时间。在 Web 服务器配置中启用压缩输出。
  3. 优化模板
    减少模板中的复杂逻辑和循环,尽量将逻辑处理放在 PHP 代码中,模板只负责展示。
  4. 使用 CDN
    将静态资源部署到 CDN(内容分发网络),可以加快资源的加载速度,减少服务器压力。
  5. 数据库优化(很多)
    使用合适的索引来加速查询。

定期清理和优化数据库表。
避免使用 SELECT *,只查询需要的字段。

  1. 使用 HTTP/2
    如果可能,使用 HTTP/2 协议,它提供了多路复用、头部压缩等特性,可以显著提高页面加载速度。
  2. 调整 PHP-FPM 配置
    如果你使用 PHP-FPM,可以调整其配置来提高性能。例如,增加 pm.max_children、pm.start_servers、pm.min_spare_servers 和 pm.max_spare_servers 的值,以适应更高的并发负载。
  3. 使用缓存服务器
    使用 Redis 或 Memcached 作为缓存服务器,可以显著提高读写性能,特别是对于频繁访问的数据。
  4. 避免不必要的插件和扩展
    禁用或卸载不必要的插件和扩展,减少系统开销。
  5. 使用性能分析工具
    使用 Xdebug、Blackfire 或其他性能分析工具来检测瓶颈,并针对这些瓶颈进行优化。

宝塔切换cli php默认版本

作者: 时间: 2023-03-31 评论: 暂无评论

[查看当前php版本]
ls -l /usr/bin/php
/usr/bin/php -> /www/server/php/73/bin/php

php安装文件夹如下 /www/server/php

[切换成7.2]
ln -sf /www/server/php/72/bin/php /usr/bin/php

thinkphp6 with sql执行结果

作者: 时间: 2023-02-24 评论: 暂无评论
class UserVip extends Model
{

}
class User extends Model
{

    public function vip(){
        return $this->hasOne("UserVip",'user_id','user_id');
    }
}

User::with('vip')->whereIn('user_id',['1001691305','1000100023'])->select();

Sql执行结果:

[sql] SELECT * FROM `yoshop_user` WHERE  `user_id` IN (1001691305,1000100023) 
[sql] SELECT * FROM `yoshop_user_vip` WHERE  `user_id` IN (1000100023,1001691305)

Docker 容器日志查看

作者: 时间: 2023-02-13 评论: 暂无评论

1、容器日志查看命令

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

复制代码

2、命令参数的使用场景
1)按照开始时间、结束时间查看容器日志

例如,查看 influxdb 容器最近20分钟到最近10分钟内的日志信息,命令如下:

docker logs --since="20m" --until="10m" influxdb

说明:--since 传入开始时间,--until 传入结束时间。

2)使用UTC格式时间查看容器日志

例如,查看 influxdb 容器自 2022-10-10T02:31:00Z 开始往后的日志信息,命令如下:

docker logs --since="2022-10-10T02:31:00Z" influxdb

3)显示日志的时间戳

例如,查看 influxdb 容器最近20分钟到最近10分钟内的日志信息(显示时间戳),命令如下:

docker logs --since="20m" --until="10m" -t influxdb

说明: -t 或者 --timestamps 参数用于显示时间戳。

4)查看最近n行的日志

例如,查看 influxdb 容器最近20分钟到最近10分钟内,最近100行的日志信息(显示时间戳),命令如下:

docker logs --since="20m" --until="10m" -t --tail 100 influxdb

或者

docker logs --since="20m" --until="10m" -t -n100 influxdb

说明:--tail 100 或者 -n100 表示最近 100行。

5)跟踪日志输出

例如,查看 influxdb 容器最近20分钟以后实时的日志信息(显示时间戳),命令如下:

docker logs -f --since="20m" -t  influxdb5

说明:-f 或者 --follow 表示跟踪日志输出。

PHP函数式编程

作者: 时间: 2023-01-16 评论: 暂无评论

PHP函数式编程

 echo '<pre>';
        function memoize($fun){
            $list =[];
            return function($arg)use($fun,&$list){
                $key = md5(json_encode($arg));
                if(!empty($list[$key])){
                    print_r('我是缓存'.PHP_EOL);
                    return $list[$key];
                }
                return $list[$key] =$fun($arg);
            };
        }
        $ff=memoize(function ($r){
            return $r * $r;
        });
        print_r($ff(9999)).PHP_EOL;
        print_r($ff(9999)).PHP_EOL;
        print_r($ff(9999)).PHP_EOL;
        //99980001我是缓存
        //99980001我是缓存
        //99980001

        

原文地址