[PHP内核探索]PHP中的哈希表
在PHP内核中,其中一个很重要的数据结构就是HashTable。我们常用的数组,在内核中就是用HashTable来实现。那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据结构,但是算法书籍里面没有具体的实现算法,刚好最近也在阅读PHP的源码,于是参考PHP的HashTable的实现,自己实现了一个简易版的HashTable,总结了一些心得,下面给大家分享一下。Hash
记一次PHP优化案例
网站架构简介:现在很多的企业都是使用lnmp或者lamp来做企业的网站服务器架构,这两种网站的服务架构,我们都是比较熟悉的;基于nginx的性能优于Apache,现阶段的很多公司,都是逐渐把Apache替换成nginx,毕竟nginx的自带的高可用配置,反向代理等等功能相当突出。 Lnmp网站服务器架构,其实就是linx+nginx+mysql+php架构体系,
php开发memcached
一、memcached 简介memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。二、memcached 安装(参考” Li
实战Nginx与PHP(FastCGI)的安装、配置与优化
一、什么是 FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要
MYSQL 入门全套
MySQL简介1、什么是数据库 ?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。主流的数据库有:sqlse
Lucene底层原理和优化经验分享(1)-Lucene简介和索引原理
基于Lucene检索引擎我们开发了自己的全文检索系统,承担起后台PB级、万亿条数据记录的检索工作,这里向大家分享下Lucene底层原理研究和一些优化经验。 从两个方面介绍: 1. Lucene简介和索引原理 2. Lucene优化经验总结1. Lucene简介和索引原理 该部分从三方面展开:Lucene简介、索引原理、Lucene索引实现。1.1 Lucene简介 Lucene最初由鼎鼎
自动平衡二叉树的构建-AVL树
AVL树是基于二叉搜索树的。但是它是自动平衡的,意思是,它左子树的深度和右子树的深度差要么是0,±1。没有其他可能。这就是AVL树,这棵树长的比较对称,不会出现极端的一边倒的情况。这也就意味着AVL在创建过程中,根节点也会不断的变换。AVL树的目的就是为了解决搜索二叉搜索树的时候可能出现最坏复杂度的情况。AVL树极端情况下复杂度也就log(n)。但是AVL树的建立有点复杂。网上查找了部分资料,维基
恶意代码分析之行为分析及样本收集
0x00 前言之前讲的内容,都是在以不运行样本为前提进行分析,这种分析方法是最安全的,可以直接在真机上通过IDA进行分析,但是很多时候,我们不得不调试样本才能对样本的恶意行为进行一个完整的分析,此外,调试节结合IDA的分析方式,也能大大的加快样本分析的速度。当我们决定要对样本进行动态调试或是行为分析的时候,由于会运行样本,我们就需要在虚拟机中执行此类操作。在本节中,主要介绍一下我平时分析样本的来源
疫情之下的科技普惠:阿里云科技驱动中小企业数字化
2020 年到 2021 年,一场疫情给全球经济发展带来了重创。在受到疫情影响之时,各行各业尽展众相,一些企业进行着自我变革;一些企业还未来得及自救,却已被淘汰。更受疫情冲击的,是各行各业中的中小型企业,他们面临艰难处境。凤凰涅槃,寻求增长,是每一个中小企业都要面对的课题。在这样的背景下,疫情的到来也在无形中加速了数字经济的发展,数字化转型成为了每一个企业突破增长的战略关键。问题来了:阿里云如何通
一行代码引来的安全漏洞就让我们丢失了整个服务器的控制权。
之前在某厂的某次项目开发中,项目组同学设计和实现了一个“引以为傲”,额,有点扩张,不过自认为还说得过去的 feature,结果临上线前被啪啪打脸,因为实现过程中因为一行代码(没有标题党,真的是一行代码)带来的安全漏洞让我们丢失了整个服务器控制权(测试环境)。多亏了上线之前有公司安全团队的人会对代码进行扫描,才让这个漏洞被扼杀在摇篮里。下面我们就一起来看看这个故事。背景说明我们的项目是一个面向全球用
简易版的 Spring 之如何实现 Constructor 注入
前言本文是「如何实现一个简易版的 Spring」系列的第二篇,在 第一篇 介绍了如何实现一个基于 XML 的简单 Setter 注入,这篇来看看要如何去实现一个简单的Constructor 注入功能,实现步骤和 Setter 注入是一样的“套路”,先设计一个数据结构去解析表达 XML 配置文件里的信息,然后再使用这些解析好的数据结构做一些事情,比如这里的 Constructor 注入。话不多说,下
MySQL 5.6.35 索引优化导致的死锁案例解析
一、背景随着公司业务的发展,商品库存从商品中心独立出来成为一个独立的系统,承接主站商品库存校验、订单库存扣减、售后库存释放等业务。在上线之前我们对于核心接口进行了压测,压测过程中出现了 MySQL 5.6.35 死锁现象,通过日志发现引发死锁的只是一条简单的sql,死锁是怎么产生的?发扬技术人员刨根问底的优良传统,对于这次死锁原因进行了细致的排查和总结。本文既是此次过程的一个记录。在深入探究问题之
都知道Base64,Base32你能实现吗?
这可怎么办?Base64也就知道个大概,Base32怎么实现呀?回去一顿恶补,查资料,看Base64源码,最后终于将Base32实现了。Base64是干什么用的要写Base32,就要先理解Base64,那么Base64是干什么用的呢?为什么要有Base64呢?这个是根本原因,把Base64产生的过程搞清楚了,那么Base32,我们就可以依葫芦画瓢了。我们知道在计算机中,数据的单位是字节byte,它
我们对“开源”的力量一无所知,却又无比期待。
前言:葡萄牙作家费尔南多·佩索阿在他的代表作《不安之书》中写过这样一段话:“我将生活看作一座路边客栈,我不得不待在那里,直到马车从深渊开来。我不知道马车将把我带到何处,因为我对一切都一无所知。”生活如是,开源行业亦如是。毫无疑问,目前全球基础软件行业有两个重要的趋势:一个是“软件吞噬一切”,每一家公司都正在变成软件公司;另一个是“开源吞噬一切”,越来越多的公司都在拥抱开源、享受开源,并参与到开源的
自学编程的 6 个致命误区
01、追求时髦所谓基础不牢,地动山摇啊。可很多小伙伴压根就没注意过这个问题,市面上出什么新鲜的技术就想去尝试,结果把自己学的乱七八糟,心灰意冷。别的语言我不懂,就拿 Java 来说吧。时下最火热的技术,有微服务 Spring Boot、有分布式 Spring Cloud,虚拟容器 Docker,流处理框架 Flink 等等等等,但如果你连 JDK、JRE 和 JVM 都搞不清楚的话,那这些技术学起
WI-FI 6与5G相比哪个更快?
随着 iPhone12 的发布,iOS 系统正式开始拥抱 5G,智能手机全面进入了 5G 时代。伴随着各大运营商的 5G 推广以及相关基站建设的如火如荼,5G 成了大家广泛讨论的热门词汇。这样热门的光芒让其他新词汇不得不退让并离开大家的视野,然而有另一项新技术却悄悄登场并且完成了属于自己的市场迭代,它就是 Wi-Fi 6。在这个万物互联的时代,5G 代表移动数据的未来, Wi-Fi 6 则是网络迭
什么才是真正的云原生?
而今,云原生成了耳熟能详的热门词,似乎不提云原生就落伍了,加入 CNCF 也成了云厂商引以为傲的技术优势。我们也看到各种云原生的定义,有来自 CNCF 的“微服务+容器+持续交付+DevOps”,也有来自不同云厂商的说法。2020 年 9 月,阿里云成立了云原生技术委员会,今天我就从云计算的初心尝试谈谈什么是真正的云原生。狭义的云原生让我们先回顾云原生的由来。云计算兴起之后,以 Docker 为代
一款优秀的 SDK 接口设计十大原则。
这些年我参与和主导过多款音视频 SDK 的设计和开发,也服务过大大小小几十家 toB 客户,其中,有一条深深的感悟:一个 PaaS 技术中间件产品,无论它的服务端 & 内核设计和实现的多么牛逼多么漂亮,最终交付给客户开发者的 SDK 才是最最关键的要素和门面,它设计得好,即使背后有不足也能有一定程度上的弥补;它设计的烂,就几乎废弃掉了底层所有的努力,还会平添无数的无效加班和问题排障的投入。
关于你看得懂看不懂的罗永浩。
我之前对罗永浩印象是,这个人似乎有种魔力。 做什么,砸什么。 做手机,锤子变坚果归入字节名下, 做电子烟,“野”完不到二十分钟国家发布了禁烟令。 于是被人笑称“行业冥灯”。 “收购苹果啥进展了” “你的短信项目什么时候干掉微信啊” 这个发福,驼背,秃顶的中年男人在镜头前,拿出网络上的舆论来质问自己。 他一贯幽默,讽刺的
抖音、吃鸡、王者荣耀:你的自律,是如何被顶级产品经理一步一步毁掉的。
01你的沉迷跟这个时代有关这是个特别容易沉迷的时代。抖音、煲剧、王者荣耀、吃鸡游戏……你的时间和注意力悄悄被它们偷走,却从不说再见。或许你也纳闷,自己的自制力怎么这么差了?但我想说,这事可能不完全怪你。《欲罢不能:刷屏时代如何摆脱行为上瘾》分享到:你的沉迷跟这个时代有关。作者亚当·奥尔特,是普林斯顿大学的心理学博士。他在这本书里以大量科学研究为基础,揭示了一个细思极恐的真相:任何人都会成为瘾君子,