文章分类: 编程
编程

redis 穿透雪崩及击穿

406 2023-08-29 20:14:00

缓存穿透指查询一个一定不存在的数据,由于缓存不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义风险利用不存在的数据进行攻击,数据库瞬时压力增大,最终导致崩溃解决null结果缓存,并加入短暂过期时间缓存雪崩缓存雪崩是指在我们设置缓存时key采用了相同的过期时间...

详情...
编程

laravel 定时任务

639 2023-08-28 00:53:00

在以前,开发者需要为每一个需要调度的任务编写一个Cron条目,这是很让人头疼的事。你的任务调度不在源码控制中,你必须使用SSH登录到服务器然后添加这些Cron条目。Laravel命令调度器允许你平滑而又富有表现力地在Laravel中定义命令调度,并且服务器上只需要一个Cron条目即可。任务调度定义在app/Console/...

详情...
编程

sitemap 的 changefreq 详解

2908 2023-08-26 00:48:00

Sitemap中的"changefreq"(表示网页内容更新频率的指令)可以根据网站的更新频率来填写。这个指令的值应该是一个包含以下选项之一的字符串:always: 表示每次检索都会更新内容。hourly: 表示内容每小时更新一次。daily: 表示内容每天更新一次。weekly: 表示内容每周更新一次。monthly: 表示内容每月更新一次。yearly:...

详情...
编程

让 git 忽略文件模式的改变

406 2023-08-24 19:47:00

使用git的过程中发现,就算文件的内容没改变,只有文件的权限改变的话,git也会检测到文件被修改了。解决方法是配置一下:git config --global core.filemode false有些时候,你发现这样配置之后没有什么效果,那是因为该容器内还有自己的配置信息,这个配置信息会覆盖 global 的配置,那么就需要对该容器做一下配置:git co...

详情...
编程

PHP 8.1: MySQLi: 执行时绑定

438 2023-08-22 14:55:00

PHP 8.1 起,MySQLi 扩展的 mysqli_stmt_execute 函数及 mysqli_stmt::execute 方法(别名) 接收一个 $params 参数。如果传入参数,传入的值会被当作字符串绑定到语句中。此前,参数化的 SQL 查询需要调用 bind_param 显式绑定变量:$statement = $db->prepare(...)

详情...
编程

PHP 8.1: 显式八进制数字表示法

490 2023-08-20 13:06:00

PHP 支持多种数字系统,包括默认的十进制数字、二进制数字、八进制数字及十六进制数。十进制之外的数字系统都有它们自己的前缀:十六进制 0x 前缀: e.g. 0x11 = 17二进制 0b 前缀: e.g. 0b11 = 3八进制 0 前缀: e.g. 011 = 9PHP 8.1 之后,八进制也支持 0o(零及字母o)前缀,这意味着八进制字面量可以更明显及...

详情...
编程

PHP 8.1: 相交类型(Intersection Types)

499 2023-08-18 11:28:00

PHP 8.1 支持相交类型(Intersection Types),它允许为参数、属性或返回类型声明类型,并强制值属于所有声明的类/接口类型。这与允许任何已声明类型的联合类型(Union Type)相反。PHP 8.1的交集类型实现被称为“纯”交集类型,因为不允许在同一声明中组合联合类型和交集类型。交集类型是通过使用 & 将类/接口名称组合来声明的...

详情...
编程

PHP 8.1 新特性解析: 新增 #[ReturnTypeWillChange] 属性

415 2023-08-17 11:20:00

#[\ReturnTypeWillChange] 是 PHP 8.1 引入的新特性,这表示不匹配的暂定返回类型不应该发出弃用通知。PHP 8.0 之前的版本将属性语法解析为代码注释,不会导致任何语法错误。在类方法中添加 #[\ReturnTypeWillChange] 属性不会导致任何问题,但在PHP 8.1中可以忽略了弃用通知。这是添加到 PHP 的第一个...

详情...
编程

禁用 Composer script 处理的超时时间

393 2023-08-16 20:08:00

对于我项目中的重复过程,我通常使用 Composer 的 script 功能来简化我自己和我的团队运行脚本和执行二进制文件的过程。我经常遇到的一件事是长时间运行的进程,如观察者脚本或后台进程,超过了 Composer 默认的300秒脚本超时。我最常看到的一个例子是大型测试套件,它可能需要5分钟以上的时间来运行,通常是端到端测试。{ "scripts"...

详情...
编程

创建自己的 PHP 服务容器 - 最小容器

380 2023-08-14 18:54:00

本文将介绍 PHP 中是如何创建自己服务容器,用于依赖注入。我将从最简单的 PSR-11 容器,并逐步添加各种特性直至我们有一个强大、通用的容器。"服务容器(service container)" 是什么?服务容器是一个 PHP 对象,用于负责其他对象的实例化。我们告诉容器如何初始化对象,然后在项目需要它的实例时,再去请求。PSR-11 是什么?PSR-11...

详情...