经过上篇文章的学习,我们已经了解到了 XS 中的默认索引配置是在哪里,也了解到了配置文件如何加载以及服务端的一些简单配置。今天,我们要学习的重点就是剩下的内容,也是非常重要的内容,那就是索引字段的配置定义以及字段设计。
PHP数据结构(十九)——B+树 (原创内容,转载请注明来源,谢谢) 一、概述 B+树是B树的变种,在数据库系统、文件系统等方面,B+树的运用非常广泛。 1、B+树的要求 1)有n棵子树的结点中含有n个关键字。(B树是n-1个关键字。) 2)所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接。这点意味着,叶子节点存在指向相邻叶子节点的指针。这个是在树形的数据结构中非常特殊的地方,使得B+
学习完索引管理相关的内容之后,我们就进入到了搜索技巧相关的学习了。其实对应在 XS 中,就是 SDK 中的 XSSearch 对象的相关学习和使用。同样的,在这一部分,我们也会普及很多搜索相关的知识。
1.Linux 能够流畅的使用Shell脚本来完成很多自动化的工作;awk/sed/perl 也操作的不错,能够完成很多文本处理和数据统计等工作;基本能够安装大 部分非特殊的Linux程序(包括各种库、包、第三方依赖等等,比如MongoDB/Redis/Sphinx/Luncene/SVN之类的);了解基 本的Linux服务,知道如何查看Linux的性能指标数据,知道基本的Linux下面的问题跟踪等
按照了解的很多 PHP/LNMP 程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段 PHP 程序员的技术要求,来帮助很多 PHP 程序做对照设定学习成长目标。
上回我们已经学习了一些简单的搜索功能,比如设置搜索语句、分页方法、数量查询以及高亮和折叠的查询效果。而今天,我们将更加深入地学习其它搜索相关的内容。最核心的,就是布尔查询,也就是类似于我们在数据库中的 AND 和 OR 之类的语法。不过在这之前,就像是 Explain 可以分析数据库的查询语句一样。XS 也为我们提供了一个可以查看分词结果以及查询条件的方法,我们得先来学会它的使用。
本文把php程序员划分为中、高级程序员两大类程序员,并针对这两大程序员应具备的技能进行分类探索。
第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操作) 目标:能够完成基本的LNMP系统安装,简单配置维护;能够做基本的简单系统的PHP开发;能够在PHP中型系统中支持某个PHP功能模块的开发。 时间:完成本阶段的时间因人而异,有的成长快半年一年就过了,成长慢的两三年也有。 1.Linux: 基本命令、操作、启动、基本服务配置(包括rpm安装文件,各种服务配置等);会写简单的shell脚本和awk/sed 脚本命令等。 2.Nginx: 做到能够安装
原文出处: 黑夜路人 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标。 本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言。(未来技术变化不在讨论范围) 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安
这两天请了两天假,出去看了看外面的招聘市场。两天时间差不多面了10家公司,成功拿到7家offer,这里总结一下,个人在面试中遇到的一些问题,不是很全,有一些忘记了。每道题从题目看很简单,在实际中都是一步一步步的深度挖掘,这里就没有总结的很细。这里面的公司有电商、游戏、大数据类型的公司。
有很长一段时间没有做PHP开发了,最近有做PHP开发的小伙伴在个人微信公众号后台留言,能够分享一些PHP有关的面试题。于是给安排上。
这两天请了两天假,出去看了看外面的招聘市场。两天时间面试了9家公司,成功拿到6家offer,这里总结一下,个人在面试中遇到的一些问题,不是很全,有一些忘记了。这里面的公司有电商、游戏、大数据类型的公司。里面的面试题也都是一个问题的切入点,有点到深,对于深挖的问题,这里没有总结,因为太多了,也不好记录。同时对大多数人也没必要,便没有写出来。
来了来了,消息队列系列总算来咯。对于搜索引擎相关的知识大家消化的怎么样呀?其实对于搜索引擎来说,我们学习的内容还是挺全面的,也算是比较深入了。而对于消息队列来说,我不准备写得太深入,因为对于这个东西,实战并不算多,主要的原因咱们在今天这篇文章结束的时候再详细的来说吧。
很多php小白在学习完php基础后,或多或少要接触到数据库的使用。而mysql数据库是你最好的选择,本文就mysql来为大家介绍php如何连接到数据库。 PHP MySQLi = PHP MySQL
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
公司出了一些自我评测的PHP题目,其中好多题目在面试的时候都会碰到,大家可以看看学习学习。
又到了一年一度的金三银四,每次总能听到一些读者的反馈,问:有没有关于 xxx 的面试题,索性就把我所收集的 GitHub 上关于面试题的项目分享给大家。
前面我们已经学习了基本的搜索功能以及非常重要的相关度排序的算法。对于大家日常基本的使用来说,其实有之前的内容就已经非常足够了,但是,一个好的工具,总会有一些意外惊喜的,比如说我们今天要学习的内容。
欢迎来到查找的世界,在学习完各种数据结构之后,总算走到了这一步,不知道大家有什么感想呢?反正我是边学边忘,现在让我去说说图的那几个算法还是在蒙圈的状态中。不过学习嘛,就是一步一步的来,暂时搞不懂的东西其实也是可以放一放的。打破砂锅和坚持不懈当然是好的品德,但有些东西可能真的是需要时间去消化的,甚至可能是需要真实的项目经历才能彻底搞明白。在我们编程行业来说就是典型的这种实践的学习形式效果会更好,很多人在上大学的时候对于数据结构以及其它专业课都是以死记硬背为主,包括上了多少年班的同学可能都没有在业务代码中真正的使用过什么算法,所以理解它们确实是非常困难的。这时,我们可以暂时休息一下,转换一下思路,学习最主要的就是预习和复习,在这次学习完之后,将来再进行多次的复习,研究各种不同的资料,迟早有一天大家都能搞明白的。
类似于Map的键值类型对象缓存对于提高应用的性能有很大的作用,实现此类缓存的方式也比较多,那么该如何选择对象缓存的方式呢?由于PHP常用的运行方式主要是基于FPM的形式,这篇文章暂不考虑常驻内存形式的缓存。
PHP 入门指南 零、序言 一、PHP 入门 二、数组和循环 三、函数和类 四、数据操作 五、构建 PHP Web 应用 六、搭建 PHP 框架 七、认证与用户管理 八、建立联系人管理系统 使用 PHP7 构建 REST Web 服务 零、前言 一、RESTful Web 服务、介绍和动机 二、PHP7,以便更好地编写代码 三、创建 RESTful 端点 四、审查设计缺陷和安全威胁 五、使用 Composer 加载并解析,这是一种进化 六、用 Lumen 照亮 RESTful Web 服务 七、改进 r
PHP数据结构(九)——图的定义、存储与两种方式遍历 (原创内容,转载请注明来源,谢谢) 一、定义和术语 1、不同于线性结构和树,图是任意两个元素之间都可以有关联的数据结构。 2、顶点:数据元素;弧:顶点A至顶点B的连线,弧是单向的,出发的点称为弧尾,抵达的点称为弧头;边:顶点A和B之间的连线,没有方向性。 3、有向图:由顶点和弧组成的图;无向图:由顶点和边组成的图。 4、完全有向图:n个顶点有n(n-1)个弧;完全无向图:n个顶点有n
不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓取百度贴吧发帖记录中的邮箱与手机号的爬虫,于是开源分享给大家学习与参考。
什么是NoSQL? 关系型数据库代表MySQL。 非关系型数据库就是NoSQL。 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗费时间和资源,尤其是数据是需要从磁盘里去检索。 NoSQL非关系型数据库存储原理非常简单(典型的数据类型为k-v)(key-value),不存在繁杂的关系链,比如mysql查询的时候,需要找到对应的库、表(通常是多个表)以及字段。 NoSQL数据可以存储在内存里,查询速度非常快。 NoSQL在性能表现上虽然能优
当“人工智能”、“AlphaGo”、“无人驾驶”、“智能投顾”等词语不断在人们视野中出现的时候,意味着我们正步入一个算法的时代。计算机通过提供给人类每天要面临的各种选择的最优解,从而让我们能更加高效的生活在这个信息爆炸的时代。 而对于大多数非算法专业领域的程序员来说,也逐渐意识到了算法的重要性。学习算法,从而更好的应用算法,通过算法去优化代码,提高程序效率。 什么是算法 必须知道的十大程序员开发用到的基本算法 快速排序算法 最排序算法 归并排序 二分查找算法 BFPRT(线性查找算法) DFS(深度优化算
微信搜索【吴亲强的深夜食堂】公众号,分享一下奇奇怪怪的设计,关注我,获取更多学习资料
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。
下面列了我读过的一些编程相关的书籍,写了一些对书的印象,都是个人观点。书名后是我个人对书的推荐强烈度打的分(5分满分),都是拍脑袋打的。 我比较习惯读纸质书,买书也比较谨慎,踩的坑少(围笑),分打得可能比较高一些。 操作系统 《Linux内核设计与实现》5分:全书都在讲 Linux 内核的设计思想,实现并不多,作为操作系统的入门书非常适合。没有很多复杂的接口,思想也容易理解。对我个人来说,解开了我很多对操作系统运行的疑惑,也对编程很有借鉴意义。建议对操作系统不清楚的早读这本书。 《Unix环境高级编程》4
1.笔试 : 4.10号左右投的简历,通知4.15参加在线笔试,笔试考的比较基础,跟php有关的不难,跟php不想关的由于没复习到,基本上猜完了,考完之后过了几天就通知一面。 2.一面: 在4.21号左右吧,通知我参加一面,由于本人在武汉,hr小姐姐问我是视频面,还是现场面,她说现场面效果可能会好点。抱着玩的心态,就去了北京现场面试。在面试前,花了一天时间把前端常见面试题、服务器相关的配置、php常见面试题、常见排序算法、数据结构什么的都看了一遍,因为之前看的php相关面经都有前端的题目。一面时
遵从所有教材以及各类数据结构相关的书书籍,我们先从线性表开始入门。今天这篇文章更偏概念,是关于有线性表的一个知识点的汇总。
9月4日,阅文集团技术专家俞慧涛在 TARS 基金会召开的线上研讨会(中国站)上进行了题为「CTSDB 与 TARS 结合,解决海量监控数据的难题」的分享,对如何通过时序数据库 CTSDB 与 TARS 的结合解决海量监控数据难题的应用实践进行了深度诠释。本文将详细介绍该分享内容。
C语言作为最基础的编程语言,30年虚弱的患病率。 无论是准备做 PHP/Java/Python/Golang 开发学习。C语言都是基础的,我们非常多基础非常小的互联网执行的开源软件服务都是C语言构筑,所以,有个扎实的C语言基础,或者去学习C语言是非常有必要和帮助的。
PHP数据结构(十一)——图的连通性问题与最小生成树算法(1) (原创内容,转载请注明来源,谢谢) 一、连通分量和生成树 1、无向图 设E(G)为连通图G的所有边的集合,从图的任意一点出发遍历图,可以将E(G)分为T(G)和B(G),T表示已经遍历过的边的集合,B表示剩余边的集合。因此,T与图G的所有顶点构成的极小连通子图,就是G的一棵生成树。由深度优先搜索的称为深度优先生成树;由广度优先搜索的称为广度优先生成树。 2、有向图 有向图和无向图类似。有向图的强连通分量,是对图进行深度优先遍历,遍历完成后,
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析 引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。
不知道你有没有这种感觉,那些所谓的数据结构和算法,在日常开发工作中很少用到或者几乎不曾用到,可能只是在每次换工作准备面试的时候才会捡起来学习学习。
通过哪个函数,可以把错误转换为异常处理? set_error_handler error_reporting error2exception catch 正确答案:A 答案分析:set_error_h
不管任何搜索引擎,最核心的部分,往往都只有两个,一是建立索引,二是搜索数据。不过对于中文这种复杂的语言体系,分词也是另一块核心内容。从今天开始,我们就先来学习第一块的内容,就是对于索引的操作。
http://mpvideo.qpic.cn/0b2e5qaaoaaasmadvi4eavrvb3gda7waabya.f10002.mp4? 这是一期会引起广泛讨论的内容, 不亚于“PHP是世界上最
数据结构和算法是计算机科学中最重要的课程,作为一名Google的软件工程师,我经常看到一些求职者或刚毕业的学生,他们对于数据结构和算法的学习是远远不够的。这不是说他们看的书是有问题的,或教授们教错了内容,而是学生对这个课程的理解是不到位的。 扎实掌握数据结构和算法的关键并不是要对每一种数据结构和它的子形式都做详尽的调查,然后记住它们的时间复杂度和空间复杂度。记住这些看起来很棒,也很吸 引人,但说实话,你在实际中很少会用到它们。不管怎样,在你的职业生涯中都不会让你实现一个红黑树结点删除的算
MySQL是一种开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现在由Oracle公司负责维护和支持。MySQL是最流行的数据库之一,被广泛用于各种应用程序和网站开发。 MySQL具有以下特点:
前段时间去面试了一下阅文集团的技术岗,也有好几个朋友找我要面试题,今天就分享一下 阅文集团起点中文网是怎么面试的,我也说不清楚,我好像不属于正规流程,自我介绍什么的我都没有说过 ? 一面是电话,二面是
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
PHP数据结构(十六)——B树 (原创内容,转载请注明来源,谢谢) 一、概述 B树在很多地方被称为“B-树”,因为B树的原英文名称为B-tree,很多人把其译作B-树,但是它的正确读法是B树,因此下面都用B树来表示B-tree。B树是一种多路平衡查找树,其对于加快查找速度具有重要意义。 1、定义 一棵m阶的B树(不是指m叉树,m是这棵树的度,下同),或者是空树,或者是满足下列特性的m叉树: 1)树中每个节点至多m个子树,m-1个关键字。 2)根节点若不
创建合适的索引是SQL性能调优中最重要的技术之一。在学习创建索引之前,要先了解MySql的架构细节,包括在硬盘上面如何组织的,索引和内存用法和操作方式,以及存储引擎的差异如何影响到索引的选择。
================================================================
之前我们讲过架构设计的一些原则,和架构设计的方法论,今天我们谈谈高性能数据库集群的设计与应用。
在公司项目中需要做一个日志监控,最开始选择的是efk,但是efk的资料相对较少并且之前对这几个产品都没接触过,使用起来难度。于是选择了zabbix作为项目的运维监控系统。
在公司项目中需要做一个日志监控,最开始选择的是 efk,但是 efk 的资料相对较少并且之前对这几个产品都没接触过,使用起来难度。于是选择了 zabbix 作为项目的运维监控系统。
领取专属 10元无门槛券
手把手带您无忧上云