自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 理想的redis集群

Redis是其中一个吸引我的系统,一个持久性的,键值对存储内存操作高性能的平台。它是一个优秀的键值对数据库。我已经在使用了。即使AWS最近宣布开始支持ElasticCache的下级缓存。但是一个无主的redis集群仍然起着重要的作用。我们需要多系统去完成工作。同时,我们能够集合多种组件在一个容错和无主的集群里共同工作么?在这片文章中我将介绍梦幻般的redis。一致哈希构建一个存储数据集群的

2013-12-22 10:19:42 907

原创 redis和memcache的对比

1. Memcached简介Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数 据全部丢失。Memcached使用C语言开发,在大多数像Linux、BSD和Solaris等POSIX系统上,只要安装了lib

2013-12-21 17:20:18 2353

原创 nginx + keepalive 实现HA

一、拓扑环境: 主nginx负载均衡器 192.168.166.203 辅nginx负载均衡器 192.168.166.177VIP地址 192.168.166.178 http://www.keepalived.org/download.htmltar -zxvf keepalived-1.2.1.tar.gzcd keepalived-1.2.1./conf

2013-12-21 17:10:35 2232

转载 PHP哈希表碰撞攻击原理

最近哈希表碰撞攻击(Hashtable collisions as DOS attack)的话题不断被提起,各种语言纷纷中招。本文结合PHP内核源码,聊一聊这种攻击的原理及实现。哈希表碰撞攻击的基本原理哈希表是一种查找效率极高的数据结构,很多语言都在内部实现了哈希表。PHP中的哈希表是一种极为重要的数据结构,不但用于表示Array数据类型,还在Zend虚拟机内部用于存储上下文环境信息(执行

2013-07-27 22:27:42 764

转载 php实现server(demo)

今天下午在segmentfault.com看到一个提问,提问标题是“PHP怎么做服务化”,其中问道php是不是只能以web方式调用。其实很多人对PHP的使用场景都有误解,认为php只能用于编写web脚本,实际上,从PHP4开始,php的使用场景早已不限于处理web请求。从php的架构体系来说,php分为三个层次:sapi、php core和zend engine。php core本身和web没

2013-07-27 22:26:03 839

转载 Socket深度探究4PHP(三)

看过前两篇文章《Socket深度探究4PHP(一)》和《Socket深度探究4PHP(二)》,大家应该对目前 Socket 技术的底层有了一定的了解。本文我们会对 PHP-5.3.6 的源码中的 Socket 模块进行一定的分析,然后再简单介绍一下目前比较热门的一些相关技术,比如 Node.js 等。自 PHP4 之后,越来越多的模块都被作为扩展提取出来(可单独编译),都在 PHP 源

2013-07-19 15:40:04 703

转载 Socket深度探究4PHP(2)

上一篇《Socket深度探究4PHP(一)》中,大家应该对 poll/select/epoll/kqueue 这几个 IO 模型有了一定的了解,为了让大家更深入的理解 Socket 的技术内幕,在这个篇幅,我会对这几种模式做一个比较详细的分析和对比;另外,大家可能也同说过 AIO 的概念,这里也会做一个简单的介绍;最后我们会对两种主流异步模式 Reactor 和 Proactor 模式进行对比

2013-07-19 15:38:04 717

转载 PHP SOCKET SERVER

Socket(套接字)一直是网络层的底层核心内容,也是 TCP/IP 以及 UDP 底层协议的实现通道。随着互联网信息时代的爆炸式发展,当代服务器的性能问题面临越来越大的挑战,著名的 C10K 问题(http://www.kegel.com/c10k.html)也随之出现。幸亏通过大牛们的不懈努力,区别于传统的 select/poll 的 epoll/kqueue 方式出现了,目前 linux

2013-07-19 15:29:03 1337

转载 使用Curl、socket、file_get_contents三种方法POST提交数据

# # /**  # * Socket版本  # * 使用方法:  # * $post_string = "app=socket&version=beta";  # * request_by_socket('facebook.cn','/restServer.php',$post_string);  # */  # function request_by_socket(

2013-07-19 14:56:42 686

原创 PHP并发访问第三方API或者页面

在实际项目或者自己编写小工具(比如新闻聚合,商品价格监控,比价)的过程中, 通常需要从第3方网站或者API接口获取数据, 在需要处理1个URL队列时, 为了提高性能, 可以采用cURL提供的curl_multi_*族函数实现简单的并发.本文将探讨两种具体的实现方法, 并对不同的方法做简单的性能对比.1. 经典cURL并发机制及其存在的问题经典的cURL实现机制在网上很容易找到, 比

2013-07-19 14:43:03 3242

原创 大型网站架构的进化

网站架构逐步发展的基本过程..  架构演变第一步:物理分离WebServer和数据库  最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了。这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候

2013-07-18 08:48:38 1071 1

原创 NoSQL架构实践

经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好,但是却不知道如何正式用到自己的项目中。很大的原因就是思维固定在MySQL中了,他们问得最多的问题就是用了NoSQL,我如何做关系查询。那么接下来,我们看下怎么样在我们的系统中使用NoSQL。怎么样把NoSQL引入到我们的系统架构设计中,需要根据我们系统的业务场景来分析,什么样类型的数据适合存储在NoSQL数据库中,什么样类型的数据必须使用

2013-07-17 14:20:35 1050

原创 海量数据的存储计算和查询模型

海量数据(“Big Data”)是指那些足够大的数据,以至于无法再使用传统的方法进行处理。在过去,一直是Web搜索引擎的创建者们首当其冲的面对这个问题。而今天,各种社交网络,移动应用以及各种传感器和科学领域每天创建着上PB的数据。 为了应对这种大规模数据处理的挑战,google创造了MapReduce。Google的工作以及yahoo创建的Hadoop孵化出一个完整的海量数据处理工具的生态系统。

2013-07-16 17:08:21 4207

原创 Streaming编程实例(c,c++,python等)

1、概述Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如:采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer)$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-strea

2013-07-16 11:47:38 1180

原创 hadoop 文件系统shell命令

调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目

2013-07-16 11:38:17 893

原创 web安全(XSS&CSRF)

客户端(浏览器)安全 同源策略(Same Origin Policy)同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性。 如:不能通过Ajax获取另一个源的数据;JavaScript不能访问页面中iframe加载的跨域资源。 对 http://store.company.com/dir/pag

2013-07-16 10:19:27 1157

原创 十道海量数据处理面试题与十个方法大总结

第一部分、十道海量数据处理面试题  1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多

2013-07-15 11:47:44 696

原创 Hadoop处理数据的轨迹

hadoop运行轨迹

2013-07-15 11:42:42 1926 1

原创 hadoop之HDFS介绍

hadoop的分布式存储系统HDFS

2013-07-15 11:39:16 993

原创 hadoop streaming使用

hadoop的treaming使用与介绍

2013-07-15 11:32:24 1856

原创 大数据架构hadoop

Hadoop在可伸缩性、健壮性、计算性能和成本上具有无可替代的优势,事实上已成为当前互联网企业主流的大数据分析平台。本文主要介绍一种基于Hadoop平台的多维分析和数据挖掘平台架构。作为一家互联网数据分析公司,我们在海量数据的分析领域那真是被“逼上梁山”。多年来在严苛的业务需求和数据压力下,我们几乎尝试了所有可能的大数据分析方法,最终落地于Hadoop平台之上。

2013-07-15 11:20:00 1696

转载 大数据处理算法—Bloom Filter

1. Bloom-Filter算法简介        Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。       Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有

2013-07-15 11:10:30 1361

转载 apache,ngnix,lighttpd性能对比

1. web服务器简介1. lighttpd     Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的Web server环境        Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web serve

2013-07-15 10:58:05 962

转载 Apache运行机制剖析

1. B/S交互过程浏览器(Browser)和服务器(Web Server)的交互过程: 1、  浏览器向服务器发出HTTP请求(Request)。2、  服务器收到浏览器的请求数据,经过分析处理,向浏览器输出响应数据(Response)。3、  浏览器收到服务器的响应数据,经过分析处理,将最终结果显示在浏览器中。 下图是一份浏览器请求数据和服务器响应数据的

2013-07-15 10:48:35 625

原创 mysql的join优化

1. 多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如: SELECT * FROM table1 CROSS JOIN table2   SELECT * FROM table1 JOIN table2   SELECT * FROM table1,table2         

2013-07-15 10:45:23 818

转载 PHP操作HBASE(通过thrift)

HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量column family的数据。官方网址是:http://hbase.apache.org一 、HBase访问接口1.  Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBa

2013-07-15 10:33:59 982

原创 MYSQL主从复制原理以及架构

1 复制概述      Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到

2013-07-14 22:38:03 784 3

原创 mysql索引的实现数据结构(B-树)

1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据:      (n,A0,K1,A1,K2,…,Kn,An)其中:K

2013-07-14 22:27:03 1114

原创 PHP整个框架架构

1、PHP是什么?PHP 指的是我们从外面看到的一套完整的系统。这听起来有点糊涂,但其实并不复杂(PHP4 内部结构图)。从功能上来分:我们可以分为三部分:1、 解释器部分(Zend 以引擎),负责对输入代码的分析、翻译和执行;2、 功能性部分(PHP功能函数以及扩展),负责具体实现语言的各种功能(比如它的函数等等);3、 接口部分(SAPI),负责同 WEB

2013-07-14 21:54:19 1116

原创 php和C语言数组占用空间对比

我们在前面的php高效写法提到,尽量不要复制变量,特别是数组。一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G。下面我们可以粗略的估算PHP数组占用内存的大小,首先我们测试1000个元素的整数占用的内存:    echo memory_get_usage() , '';      $start = memor

2013-07-14 21:50:59 1053

原创 PHP生命周期,内核执行过程

1、PHP的运行模式:    PHP两种运行模式是WEB模式、CLI模式。无论哪种模式,PHP工作原理都是一样的,作为一种SAPI运行。1、当我们在终端敲入php这个命令的时候,它使用的是CLI。它就像一个web服务器一样来支持php完成这个请求,请求完成后再重新把控制权交给终端。2、当使用Apache或者别web服务器作为宿主时,当一个请求到来时,PHP会来支持完

2013-07-14 21:44:56 687

转载 PHP4种运行模式对比

PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli  命令行运行   (Command Line Interface)4)web模块模式 (apache等web服务器运行的模块模式)1.  CGI(Common Gateway Interf

2013-07-14 21:37:59 792

转载 mysql 常用函数

一、数学函数ABS(x)   返回x的绝对值BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x)   返回大于x的最小整数值EXP(x)   返回值e(自然对数的底)的x次方FLOOR(x)   返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值LEAST(x1,x2,...,xn)     

2013-07-14 21:24:32 508

转载 Nginx工作原理和优化

1.  Nginx的模块与工作原理Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。Nginx的模块从结构上分为核心模块、基础模块和第

2013-07-14 16:39:30 995

转载 mysql优化查询的方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id f

2013-07-14 07:48:04 496

原创 mysql事务

mysql 数据库从4.1就开始支持事务功能,5.0将引入存储过程。事务的特性:1.原子性(Autmic):事务在执行性,要做到“要么不做,要么全做!”,就是说不允许事务部分得执行。即使因为故障而使事务不能完成,在rollback时也要消除对数据库得影响!2.一致性(Consistency):事务得操作应该使使数据库从一个一致状态转变倒另一个一致得状态!就拿网上

2013-07-14 07:44:27 506

转载 memcache与mysql数据库同步

memcache与mysql数据库同步面试某电商时,面试官问到了memcache和mysql数据库同步的问题,当时只是粗略的想到了mysql的触发器,现在查找了一些资料。mysql memcached UDF(用户自定义函数)和mysql触发器在更新mysql数据库的时候,触发更新memcache。1、首先介绍mysql memcached UDF安装http://blog.1

2013-07-13 08:37:51 811

原创 Memcache存储大数据的问题(大于1m)

Memcached存储单个item最大数据是在1MB内,如果数据超过1M,存取set和get是都是返回false,而且引起性能的问题。我们之前对排行榜的数据进行缓存,由于排行榜在我们所有sql select查询里面占了30%,而且我们排行榜每小时更新一次,所以必须对数据做缓存。为了清除缓存方便,把所有的用户的数据放在同一key中,由于memcached:set的时候没有压缩数据。在测试服测试的

2013-07-13 07:53:41 5152

原创 一个memcache的常用操作类

/** * Memcache 操作类 * * 在config文件中 添加      相应配置(可扩展为多memcache server)    define('MEMCACHE_HOST', '10.35.52.33');    define('MEMCACHE_PORT', 11211);    define('MEMCACHE_EXPIRATION', 0); 

2013-07-13 07:34:02 891

原创 memcache必须掌握的知识点

Memcached概念:    Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-value对的方式存在内存中。官网下载地址: http://www.memcached.org/运行环境: linux,BSD,windows都可跑协议理论:http://code.sixap

2013-07-13 07:29:43 639

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除