专注于互联网系统设计
情况:收不到邮件。 邮件发送系统并没有问题。 排查思路:1、发送一次,先去数据库看看是否验证码是不是重新生成一次了select * from uc_verify_code where uid=21306555 目的是确保已经生成到数据库,因为只有这样子才会加入到数据库去的。
一、软件的用途,它主要包括以下几种方式的测试:1、cpu性能2、磁盘io性能3、调度程序性能4、内存分配及传输速度5、POSIX线程性能6、数据库性能(OLTP基准测试) 这个软件为什么找不到官网呢?giulib上面的网址只能下载源码。
http://oauth.net/2/ 协议的原文。原来是1.0版本,现在是2.0版本了 https://ruby-china.org/topics/15396https://blog.yorkxin.org/posts/2013/09/30/oauth2-1-introduction/ 通俗解释: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 要解决的问题: 获取授权。
1、php将表单里面获取的日期格式转换成统一的格式 2015-9-9 都统一转换成 2015-09-09 这样在数据库都是统一的格式,方便以后查询 $year = "2015";$month = "9";$day = "09";var_dump(checkdate($month...
什么是主引导扇区? master boot record它是硬盘上的第一个扇区,由硬盘厂商就预留了。一个扇区的大小通常是512个字节。主引导扇区,不依赖于具体的操作系统,也就是说主引导扇区可以启动任何一种操作系统。
都在说互联网要敏捷开发。 我思考,具体实施起来,的确许多障碍。 概念很好。方向也不错。思考:用什么办法来实现敏捷。 技术层面要能够支撑敏捷开发。比如框架,代码层面。 这些都需要技术去解决的。
、系统之间耦合:用异步处理代替同步处理 针对系统异常,提供降级处理,提供有限的合格服务。前端页面系统,php, 使用优化器来优化php代码。 将系统进行分级,按照重要性: 一级系统:因为是强依赖关系,所以要同步调用,重试机制。
虚拟文件系统当时的设计目的是为了网络文件系统而设计的。虚拟文件系统,是一个抽象层。所以一个分区可以同时存在多个文件系统的原因就是,有个抽象层。。Windows没有这个,不需要这样子做。它靠盘符来确定文件系统网络文件系统的缺点:需要锁机制。
Vigrant,基于virtualbox。创立模板。是管理工具。没有讲解清楚。Docker,集装箱的概念。CoreOS,基于linux内核的操作系统,基于docker。盒子。各个容器相互不依赖。。一个系统放到一个容器里面。
招聘工程师的十条经验教训 作者 Manuel Pais ,译者 李清玉 发布于 2015年4月9日 Rodoljub Petrović,在过去的十年里从一名软件工程师转变成为一名经理,他在2015年卢布尔雅那开发运维日大会上分享了不断成长的工程师团队 的经验教训。
了解硬盘的原理对于编程,做数据优化(比如磁盘i/0瓶颈,机械硬盘慢的原因)都是有好处的。 以前总觉得不太需要了解这些,但是越是做到后面,发现,了解计算机各个组件的原理,其实才能理解更加深入的知识,否则永远只是一个敲代码的工人。
一、tar.gztar -xzvf二、tar.bz2tar.bz2 解压命令bzip2 -d gcc-4.1.0.tar.bz2---上面解压完之后执行下面的命令。执行成功后,会解压生成一个.tar的压缩包文件。
资料来源:http://www.huxiu.com/article/106199/1.html?f=xianguo 这个尚德教育机构的创始人,虽然不是做技术的,不过说话还真到点: 我们发现,传统网校的业务人员不能用,他们的技术人员也不能用。
从一本书里面看到一个好的看法,与以前看的管理者本质是服务心态的观念非常吻合。 ----------------------------------- “让我这样来解释,”一分钟经理人打了一个比方,“我会把你的组织架构想象成一个金字塔,首席执行官位于塔顶,其他所有做出贡献的个体都在底部。
scale 英文是扩展的意思。 数据库要进行扩展,指的是存储系统不够,或者性能不够,要提升的时候,就要进行扩展。分为向上扩展和横向扩展,这就像一个人往上面发展与横向发展两种思路。scale-up:往上方向去扩展,就是提高单机的性能,比如数据库调优,硬件上的调优等等。
编译memcached扩展的时候,得指定libmemcached库的位置--with-libmemcached-dir=DIR 来指定路径。这个路径就是安装libmemcached时指定的prefix的值所以得先安装libmemcached库。
《计算机程序的构造和解释》(简称为SICP) 这本书提到,代码是写给人看的,不是写给机器看的,只是顺便计算机可以执行而已。如果代码是写给机器看的,那完全可以使用汇编语言或者机器语言(二进制),直接让机器执行。
nginx的转发,http_pass 转发到一个域名passport.ab.cn 那具体是到哪台机器上。 其实可以通过/etc/hosts文件来配置的。 可以理解,这个hosts文件是操作系统级别的,所有在这个操作系统上的软件都绕不过它。
一、服务端 之前理解错误了。服务端只有一个memcache,一般把服务端称作memcached(带d),是因为守护进程的名称就是叫做memcached(一个这样的执行程序文件)。 编写的语言:c语言 官网为:http://memcached.org/ 二、客户端 很多人都面对两个php的扩展大有疑惑,而且也记不住,只是知道memcached扩展更加高级嘛。
目前遇到的情况有: 一、数据库进行在线ddl(修改表结构和字段) 也是使用重名表名的方式。复制一张表,包括里面的数据,假设名称为tmp。在这张tmp表上面执行dll语句操作。此时要记录某个时刻开始对数据库的更新操作sql,缓存起来。
使用这个框架,我总结了如下几点考虑 1、这个框架速度快。纯c语言编写的框架,速度都比php框架快,省去了中间环节。当然,使用它不仅仅是性能考虑。因为如果为了解决php性能问题,完全可以有很多种方式,不仅仅是这种。
梦想是支撑一个人忍受艰苦环境最强大的精神力量;我看百家讲坛,曹操在外面行军打仗,生活条件艰苦,他完全可以在自己的许都清闲。赤壁之战的时候逃命时的狼狈不堪,东西都没得吃。那个年代物质条件哪里现在这么好,没有车,靠骑马,打仗靠走崎岖的山路,或晚上突袭。
写代码,只是完成功能,堆砌代码。如果别的程序员接手,就会感觉比较吃力。难以维护,很怕去折腾这样的代码。所以很多技术员去维护的时候,宁愿自己写,不愿意在别人的基础上修改,因为看着别人的代码,难以看明白,加上业务部催任务的压力(包括老板),如果还等到去看懂别人代码,再修改。
对于技术方面开发,要解决一些比较复杂的问题。技术很折腾。 有个观点说,业务调整一小步,技术进一大步。 非常有同感。我记得曾经看阿里巴巴dba童家旺分享提到他们数据库方面调整时,说了一点:技术人员做得最牛逼的事情,不是解决了数据库本身的问题(言外之意很难解决),而在于砍掉了业务的需求。
大体分为:事前估算(设计算法之前就估算此算法性能)和事后估算(运行后,通过收集数据) 直觉上以为是事后估算为主,毕竟,实践是检验真理的标准嘛。事后收集数据才是比较靠谱的。 不过,想法错了。现在才明白,以"事前估算"为主要办法。
本文主要是思维性的总结,是总结优化的方法学,对方面上面的错误进行总结。不会涉及到前端具体的技术,比如对js和css进行压缩、合并,减少http请求,缓存头控制等等。这些那本《高性能建站指南》都有现成的。
为什么需要进行全文搜索呢? 一个表中有a、b、c多个字段。我们使用sql进行like搜索的时候,往往只能匹配某个字段。或者是这样的形式:a LIKE “%关键词%”or b LIKE “关键词” 这样子根本没法实现全文搜索,如果需要搜索整个表中所有出现过关键词”手机”的商品,一般要匹配商品的标题字段。
由于在公司要维护阿里云的linux服务器,我们的svn服务器就安在阿里云上面。所以经常会涉及到svn的维护操作。离职的时候编写交接文档,刚好有充足的时间写一篇说明介绍,此说明纯原创,不是从网上复制,手工根据个人理解写出来的。
极限编程 敏捷开发是一种思想,极限编程也是一种思想,它与敏捷开发某些目标是一致的。只是实现方式不同。测试驱动开发是极限编程的一部分。 1、极限编程这个思路的来源 Kent Beck先生最早在其极限编程(XP)方法论中,向大家推荐“测试驱动”这一最佳实践,还专门撰写了《测试驱动开发》一书,详细说明如何实现。
疑问:为什么会涉及到分词方法学呢?为什么需要确定哪些是词语,哪些不是词语呢?为什么需要进行分词,如果不分词会是什么情况呢?分词的根本目的是为了搜索服务的,更确切的是为快速搜索而服务的。 了解倒排索引后,就知道全文搜索需要分词了。
倒排索引也叫做反向索引(inverted单词也有反转的意思,只不过大家喜欢翻译成倒排索引)。 倒排索引在搜索引擎中经常用到,倒排索引也叫做反向索引。某天在想,为什么叫做倒排索引呢?倒过来的,反转过来的。
缺乏产生背景的介绍。比如为什么会产生这种东西,在没有这种东西之前是什么一个情况。了解这些,对于解决实际问题可能帮助并不大,不过对于学习知识帮助很大。可以提升思维,知道这种东西是为解决什么问题而产生的。那么就不会盲目去模仿,有一个判断力。
在linux下设置一个服务(或应用)开机自动启动有两类办法 第一类:利用开机的时候,linux会自动执行某个文件里面的命令。那么把启动某个服务的命令,加到这个文件里面去。 比如会执行/etc/rc.local里面的命令。
能够使用service命令进行操作的,就是已经注册成为linux的系统服务了。window中也可以注册成为系统服务的办法。 service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些地方没打通,云里雾里的。
听到这样说法:hash是内存中使用的经典数据结构。内存是典型的随机访问设备。 为什么hash这种数据结构很适合内存使用呢?如何理解内存是随机访问设备呢? 因为我想知其所以然,如何理解背后的原因,我花费点时间来学习一番。
使用工厂模式的目的或目标?工厂模式的最大优点在于创建对象上面,就是把创建对象的过程封装起来,这样随时可以产生一个新的对象。减少代码进行复制粘帖,耦合关系重,牵一发动其他部分代码。通俗的说,以前创建一个对象要使用new,现在把这个过程封装起来了。
一、单件模式英文叫做sington。其他语言中有叫做单例模式,其实都是一样的道理。保证只会出现单个实例,所以是单例。翻译成单件,永远只会产生一件,呵呵。 还有翻译成单元素模式。其实关键是看这个英文比较好。
实际上在,做web开发,比较少遇到使用一些算法之类的,毕竟不是做搜索引擎,也不是写底层(比如写个类似于mysql这样的数据库,里面需要自己实现排序算法),另外,每种语言,比如java,php都或多或少已经封装好排序函数给程序员使用。
原来的mysql_connect是非持久连接,所以即使你在当前脚本中没有使用mysql_close函数进行关闭连接。脚本执行完毕后,连接标识会自动释放掉。这里是什么完成自动上释放的操作呢?php跟java一样,有一个垃圾资源回收系统,对于不再用到的资源会自动进行内存回收。
先来看看对一个字段做全文索引,作为一个数据库系统需要做哪些工作? 假设一个文章表里面包含几个字段:文章id、文章作者、文章标题、文章内容 比如,我们对文章内容这个字段artilce_content建立全文索引,这样方便对文章里面的内容使用关键词搜索。
目前关系型数据库系统中有两种锁定模型: 一种是mvcc(Multi-Version Concurrency Control),方便并发控制的。 大多数rdbms都是使用这种方式实现。读不加锁,写加锁的机制。
insert into test_fulltext values("王正科技全文")select * from test_fulltext where data like "%王正%"能够搜索到新插入的一行数据。
由于我一直是做php开发,热部署对我而言是一个新概念,比较新鲜。根据查阅,才知道是其他语言才有的。 我更喜欢了解一项技术从原理性来求解,这样一通百通。只需要了解原理,就抓住本质的东西了,细节可能不会。
------------------------时间的格式date [OPTION]... [+FORMAT]echo `date 空格 +'时间格式串'` 调用date必须加符号反引号``,表示执行里面的结果当为: `date +'%Y%m%d-%H:%M:%S'`没有时分秒的情况下,不需要用''将格式包含起来。
记录以下信息,源于一件事情,一位同事,每次我改他的js代码,发现语句结束都不使用分号作为结束。长长的一串,读起来比较吃力。即便语句的结束不使用分号结束,代码仍然不会报错,正常运行,所以不少程序员懒得去管这个。
给技术人上的管理课:控制和计划 投递人 itwriter 发布于 2014-02-08 16:02 评论(0) 有535人阅读 原文链接 [收藏] « » 在开始讲任何的细节之前,我想先谈谈为什么要写这样的系列文章。
在网上看到一个知识点如下: 对机械硬盘来说,1秒可以完成150次左右的随机I/O。而结合设计优良的Hash算法,内存查找可以每秒执行40万次左右。硬盘的随机读写能力决定了其读写的最差性能 =========================== 后来我看了斯坦福大学的《数据库系统实现》一书...
整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求。那么表结构也会经常修改,加字段,加索引。在线直接在生产环境的表中修改表结构,对用户使用网站是有影响。 以前我一直为这个问题头痛。当然那个时候不需要我来考虑,虽然我们没专门的dba,他们数据量比我们更大,那这种问题也会存在。
字段不要使用null值。查询,索引方面不利。如果是整型,int,仅仅是设置 not null还不够。最好是这种一个默认的值0。为什么?text类型处理性能低于varchar。尽量不要使用text/blog数据类型,使用的话。
要点如下:目前23台pc server每天pv数2k万左右。注册用户数300万。表的数据,大部分是行数量是千万的。5个人算法团队。另外开发人员总共11个,包括全职和兼职(以前看百姓网分享其技术也只有10名)06年的时候每天120万左右动态请求。