共 112 篇文章
文章
继续阅读
Laravel 中为何不使用 blpop 取队列?
Redis 的 list 数据结构常用来做消息队列,通常使用的命令有 lpop/rpop ,还有带阻塞版的 blpop/brpop 等。blpop 的优点是避免一直轮询占用资源,而且支持多个列表作为参数并按照顺序弹出数据,如 blpop high low 30,可以更方便实现队列的优先级。
文章
继续阅读
Laravel 中间件原理
Laravel 的中间件机制提供了一种管道的方式,每个 HTTP 请求经过一个又一个中间件进行过滤,Laravel 内置了很多中间件,比如 CSRF 机制,身份认证,Cookie 加密,设置 Cookie 等等。
文章
继续阅读
深入理解 PHP 写时复制机制
一个例子:
<?php
$foo = 1;
$bar = $foo;
echo $foo + $bar;变量 $foo 赋值给变量 $bar,这两个变量具有相同的值,没有必要新申请内存空间,他们可以共享同一块内存。在很多场景下 PHP 的 COW 对内存进行优化。比如:变量的多次赋值、函数参数传递,并在函数体内修改实参等。
文章
继续阅读
深入理解 TCP 三次握手
TCP 三次握手是建立可靠连接的基础。本文从握手过程、序列号机制、安全性等角度,深入分析为什么 TCP 需要三次握手而不是两次,以及围绕这个过程的各种边界情况和攻击手段。