译|PHP 7 新的 Hashtable 实现

大约三年前,我写了一篇分析 PHP 5 中数组的内存使用情况的文章。即将到来的 PHP 7 作为我工作的一部分,我重点关注于优化数据结构的大小以及内存分配上,为此重写了 Zend 引擎的大部分的内容。在这篇文章中,我将对新的 HashTable 实现进行概述,并说明为什么它比以前的实现更高效。 ...

排查 ES 查询问题:深入了解 json_encode() 函数

在使用 Elasticsearch 时,有时候会需要通过某个字段批量查询数据,比如通过用户 ID 批量获取用户信息,DSL 语句如下: { "query": { "bool": { "must": [ { "terms": { "user_id": ["123", "456"] } } ] } } } 在 PHP 中,通常会使用数组来构造 DSL 语句,然后调用 json_encode() 函数将数组转成 JSON 字符串。 ...

2022-06-02 · 3 分钟 · 1459 字 · PHP

浅析 Redlock 分布式锁实现原理

前言 不知不觉中,这篇文章在我的草稿箱已经躺了半年多了。 起初写这篇文章是准备做一次技术分享,后来因为一些原因将分享的主题换成了什么是惊群问题 ,这篇文章也就一直在草稿箱躺到了现在。 ...

Yar 源码阅读笔记:RPC 服务端

前言 在前面的文章中介绍了 Yar 客户端以及相关模块的实现,弄清楚了客户端的远程调用是如何发送出去的、发送的内容是什么、以及如何处理响应结果。 今天我们就来看看 Yar 服务端是如何处理客户端请求的。 ...

Yar 源码阅读笔记:客户端的并行调用

前言 在上一篇文章中,介绍了客户端同步调用的具体实现的,主要还是通过调用传输模块的相关函数,完成发送和接收远程调用的数据。 在调用多个远程方法时,同步调用是以串行的方式执行的,导致运行效率比较低,所以需要使用并行调用来提高调用多个远程方法的运行效率,减少整体运行的时间。 ...