自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(66)
  • 收藏
  • 关注

原创 搭建packagist私服和composer

1.下载源码https://github.com/composer/packagist 2.修改配置文件cp app/config/parameters.yml.dist  app/config/parameters.yml数据库的信息填写以下,github的key填写一下(我是随意写的) 3.安装composercurl -sS https://getcompos

2014-10-10 15:36:48 1110 1

原创 php多进程写入文件

测试一$begin = time();for ($i=0; $i$i++) { $fp = fopen("tmp", 'r+'); fseek($fp, 0, SEEK_END); fwrite($fp, str_repeat($argv[1],1024*32).PHP_EOL); fclose($fp);}

2014-10-10 15:36:43 229

原创 PHP使用memcache长连接作为RPC客户端需要注意的地方

memcache扩展版本 3.0.8一. retry_interval$retry_interval 某个rpc服务器端失败后故障转移的时间,retry_interval的时间内,该节点会被一直标记为不可用,隔离掉,为小于0的数一直隔离。int mmc_server_valid(mmc_t *mmc TSRMLS_DC) /* checks if a server sho

2014-10-10 15:36:39 178

原创 google Cayley图谱数据库初试

一.安装mkdir cayleycd cayleymkdir srcexport GOPATH=$(pwd)go get github.com/google/cayleygo build src/github.com/google/cayley/cayley.go其中缺什么包下什么包,没有hg工具安装hg修改下源码cayley.go  switch c

2014-10-10 15:36:35 286

原创 读REDIS数据结构

一.DICT主要有两个问题:1.散列冲突,解决办法是拉链法typedef struct dictEntry { void *key; union { void *val; uint64_t u64; int64_t s64; } v; struct dictEntry *next;}

2014-10-10 15:36:31 79

原创 一致性哈希虚节点解决雪崩问题

一致性哈希的基本原理大家都知道,就是找一个最近的节点或者顺时针,逆时针找一个节点,而不是通过模一个N去找节点,这样做的好处就是当其中一台磬机的时候,一致性哈希还可以继续工作,而模N的方法,所有定位在磬机节点上都会失败。如下代码是一个简单的一致性哈希:phpclass Redis { //redis实例的id public $id; publ

2014-10-10 15:36:27 396

原创 TCP的建立和关闭

一.TCP头信息简单的至少应该知道,源端口,目的端口,序号,确认号,标志位,校验和二.TCP的建立1.客户端将SYN标志位置1,同时生成随机的序号,确认号是0。2.服务器接收到SYN,知道有人想和他建立连接,做出回应,将SYN和ACK标志位置1,确认号为刚刚接受客户端的序号加1,代表已经收到客户端的建立连接请求。然后自己再随即生成一个序号,用来确认从服务器到客户端的链路正常。3

2014-10-10 15:36:22 105

原创 nginx和apache的比较

1.nginx的IO是非阻塞的,apache的IO是阻塞的。nginx accept一个连接以后会把它放到EPOLL的消息循环中,APACHE需要启动一个线程,当系统线程达到瓶颈以后,会阻塞网络IO。2.nginx的并发比apache要高很多因为apache一个连接需要一个线程,而NGINX是先把socket句柄放到EPOLL中,然后循环的让处理线程处理,也可以理解为一个处理线程对应多

2014-10-10 15:36:18 95

原创 进程和线程的区别

此问题也是面试中的一大俗题,可以发散引申出很多。下面记录几点关键点。 1.进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位(后半句是因为多线程的OS中,进程不是一个可执行的实体)。2.线程是依附于进程,比进程的创建销毁切换都更省资源,所以多线程的程序有更好的并发。这里有可能被追着问到线程和进程都包括哪些信息2.1 进程的PCB(进程控制块)包括进程ID,内存指针

2014-10-10 15:36:14 97

原创 从并发和索引说说innodb和myisam的区别

一.引言这个问题看似是个很俗气的问题,但是在面试中也是个经常被问到的问题。我想很多人都能说出几条,比如事物,外键,等等。但是我想这样想起一点说一句这么回答的话,知识其实都是分散的,这样就显得不是很高大上。我认为回答这个问题,可以从两个方面来阐述,一个是并发控制方面,还有一个就是索引实现方面。二.并发控制1.myisam是表级锁表锁的意思就是,对整张表加锁,当用户进行写操作(UP

2014-10-10 15:36:10 114

原创 thrift基本概念和实例

一.thrift可以做什么thrift是一个跨语言通信的工具,支持的语言多,而且还提供服务器端的众多网络模型,使服务端的开发可以只专于服务本身的逻辑。二.thrift重要概念1.processor 实际服务器端业务逻辑处理的实现类。2.transportTTransport主要处理服务器端和客户端的网络读写。主要的接口openclosereadwrite

2014-10-10 15:36:06 189

原创 fastcgi+lighttpd+c语言 实现搜索输入提示

1.lighttpd 服务器lighttpd是一个比较轻量的服务器,在运行fastcgi上效率较高。lighttpd只负责投递请求到fastcgi。centos输入yum install lighttpd安装   2.fastcgifastcgi解决了cgi程序处理请求每次都要初始化和结束造成的性能问题。fastcgi并且是独立于webserver的,fastcgi的crash

2014-10-10 15:36:02 139

原创 PHP Swoole 基于纯真IP库根据IP匹配城市

把纯真IP库读到内存,纯真IP库本来就是有序的,然后每次请求二分查找就行,44WIP查找十几次就搞定了dispatch_mode最好写3,不然做服务的时候,会导致进程任务分配不均匀。max_request 处理请求数量累加到达该值会重启处理进程,防止内存泄露worker_num 根据内存和服务处理能力可以自己设置跑几个工作进程。swoole.phpphprequire

2014-10-10 15:35:57 156

原创 把一个二叉树转换成一棵最右深度树,并且保证前序遍历顺序不变

Amazon Interview Question SDE1sGiven a binary tree. Modify it in such a way that after modification you can have a preorder traversal of it using only right pointers. During modification you can use

2014-10-10 15:35:53 104

原创 用trie树实现输入提示功能,输入php函数名,提示php函数

参照刘汝佳的trie树 结构体#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h"/***** 连接字符串和字符 **/char* strcatch(char *str, char ch) { char *p = str; while (*p

2014-10-10 15:35:41 609

原创 Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operand may be an integer or another expression.Some examples: ["2", "1", "+", "3"

2014-10-10 15:34:02 98

原创 Xapian简明教程(未完成)

第一章 简介1.1 简介Xapian是一个开源的搜索引擎库,它可以让开发者自定义的开发一些高级的的索引和查找因素应用在他们的应用中。通过阅读这篇文档,希望可以帮助你创建第一个你的索引数据库和了解一些基本概念,并提供了了代码作为参看。如果你已经安装了Xapian,并且只想看实例代码,可以跳过 “Xapian-核心概念”章节,直接到 “Xapian-Hello World”。1.2

2014-10-10 15:33:58 295

原创 php通过gbk编码判断 含有连续数字 可用于判断QQ号,手机号等。

有可能有些输入,不希望让用户的评论或者私信中含有类似于QQ号,手机号的文本,比如交友网站。还有些恶意SEO通过,构造恶意检索词,检索词中包含QQ,手机号等,让百度爬取到,增加展现。也需要将这些检索词屏蔽掉。numberSafe函数通过GBK码表,判断输入是否包含连续的5个数字,中文数字,数字谐音,或者特殊中文字符(①②Ⅰ Ⅱ等)如果包含返回false,不包含返回true。  1 fun

2014-10-10 15:33:53 182

原创 实现一个WEBIM

除了用C写过hello world,数据结构,第一次写这么多行。高手请忽略我。IM实现的方式现在有很多,我挑了一种来实践了一下。前端用jsonp发异步还能跨域的长轮询请求,后端用epoll写了一个支持长连接的chat server前端方面接收IM消息:发起一个http请求,这个请求在服务器端一直不返回,是个长连接。当服务器有信息反馈的时候,再发送一个长连接请求。这个也叫长轮询,是服

2014-10-10 15:33:49 116

原创 拼写纠错

php/** 事件a:输入正确单词 事件b:输入错误单词 p(a|b):已经输入了错误的单词b,但是想输入的是正确单词a的概率。可以看出在输入一个错误单词b时,就是找到一个p(a|b)概率最大的a,单词a就是所求。 p(b|a):已经输入了正确的单词a,但是可能输入成错误单词b的概率。一般约难拼写的就越高。 p(a):输入正确单词的概率,也

2014-10-10 15:33:41 132

原创 socket建立过程

面向连接无连接

2014-10-10 15:33:37 180

原创 java 代码块,static,synchronized,内部类等问题

迅雷的笔试题,最后的一道30分的判断题,是代码块,static,synchronized,内部类的一道综合题。一。代码块1.普通代码块2.构造代码块 优先于构造方法执行3.静态代码块 优先于main函数,构造方法执行,且只执行一次4.同步代码块二。static1.静态方法,静态变量都属于类。2.调用都是通过类名引用。3.静态方法不能使用非静态变量或方法。反之可以

2014-10-10 15:33:32 93

原创 二分查找相关

题目1.左旋数组中的查找(附:字符串左旋方法 的题目2)解法:将这个问题可以分解成子问题。要是带查找值落在单调有序区,那就直接二分查找了,落在左旋数组区,就递归查找。也可以把它简化成一个递归,就用fun,不用bs是一样的。 题目2.左旋数组中的最小值解法:这题比上一个还简单,左旋数组的最小值一定出现在非单调部分,所以每次递归一半就行了。需要注意的就是递归终止条件,当数组最后

2014-10-10 15:33:28 70

原创 随便写个intval

#include int intval(const char* str){ if(str==NULL){ return -1; } char* p = str; int result=0; int flag = 1; char c; while(c = *p++){ if(c=='-'){

2014-10-10 15:33:26 114

原创 排序相关

合并排序扩展题目1.求数组中反序对的个数解法:将数组进行合并排序,只要P2指针向后移动,反序个数就sum += mid-p1+1个。如图,将2加入结果, 都是反序的。 2.荷兰国旗问题o(n)时间,o(1)空间,将0,1,2三个数排好序。解法:排好序的数组分为三个区,最左边是0,最右边是2,其余的都在中间。利用这个思想,维护三个变量begin,current

2014-10-10 15:33:24 78

原创 逻辑与运算

逻辑与运算任何时候,只要两个表达式的某位都为 1,则结果的该位为 1。否则,结果的该位为 0。1&0=00&1=00&0=01&1=1 逻辑与的性质1.可以将任意位清零比如与一个00001111 就是将一个8位数的高4位清零,保留低4位。同理也可以与11110000 将低4位清零。2.N&(N-1)每一次将N二进制从低位到高位第一个1清零。 相关

2014-10-10 15:33:20 150

原创 运用字符串处理相关

题目1.反转单词。输入hello world。输出world hello将hello world整体做一次strrev(),变成dlrow olleh再每个单词strrev(),变成world hello 题目2.左旋N位字符。输入abcdef和2。 输出cdefab将输入的前N位做strrev()操作,得到bacdef再对后len()-N位做strrev()操作,得到ba

2014-10-10 15:33:15 88

原创 异或性质

异或运算相同结果是0,不同结果是1性质1.a^b = b^a2.(a^b)^c = a^(b^c)3.a^a = 0; a^0 = a;4.a^b^b = a^0=a; 问题1.找一个只出现一次,其余都出现两次的数。根据性质3,将所有数做与运算 问题2.找一个出现奇数次,其余出现偶数次的数。和问题1一样 问题3.给定数字集合在1-1000之间

2014-10-10 15:33:13 102

原创 PHP序列化4种方式

1.  serialize和unserialize函数2.  json_encode 和 json_decode3.  var_export 和 eval4.  wddx_serialize_value 和 wddx deserialize

2014-10-10 15:33:04 89

原创 php几个SORT

sort  按照值排序 删除 键名 usort 带回调函数的比较。比较的是值uasort 和usort相同uksort 带回调的比较。比较的是键ksort 按照键排序 保留 键值对应关系asort 按照值排序 保留 键值对应关系

2014-10-10 15:33:02 72

原创 求链表中间节点的值,求链表倒数第K个节点,检测链表的环

int loop(struct Node* head){ struct Node* p1 = head; struct Node* p2 = head; int i = 0; while(p1 && p2){ i++; if(i!=1){ if(p1->value == p2->value){

2014-10-10 15:33:00 60

原创 PHP与MYSQL时间

时间戳方便时间的计算加减等。格式化日期更直观。 MYSQL中SELECT FROM_UNIXTIME(1342930200) //2012-07-22 12:10:00SELECT UNIX_TIMESTAMP("2012-07-22 12:10:00") //1342930200附加一个NOW()获取当前时间PHP中date('Y-m-d H:i:s', 1156219870

2014-10-10 15:32:56 105

原创 php函数参数列表

1.直接传值function fun($arg1){    echo $arg1;}2.传引用function append(&$arg,$str){    return $arg=$arg.$str;}$source = "99";append($source,"8");echo $source;3.默认参数function fun($arg1=1,$arg2=2){    echo $arg1

2014-10-10 15:32:54 270

原创 php读文件的4中方法。

fopen$fp = fopen("download.php","rb");    while(!feof($fp)){        echo "fopen: ".fgets($fp);    }    fclose($fp);说明:对于fgets($handle,$length);fgets是读取一行,返回$length-1长度的数据。fgetc($handle)是读一个字节。file$lin

2014-10-10 15:32:52 85

原创 自己实现php UTF8中文字符串截取

header("Content-type: text/html; charset=utf-8");function my_substr($str,$begin,$length){ $i = $begin; $result=""; while($length > 0){ if([color=red]ord($str[

2014-10-10 15:32:49 90

原创 C与C++动态分配,释放内存的区别

[size=medium]1. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放

2014-10-10 15:32:47 91

原创 php magic method

php的魔术方法总结php的魔术方法都是和类有关的。    __autoload()   找不到类的时候调用    __call()       找不到类中的某个方法时候调用    __construct(), __destruct() 构造函数和析构函数    在给未定义的变量赋值时,__set() 会被调用。     读取未定义的变量的值时,__get() 会被调用。     当对未定义的变量

2014-10-10 15:32:45 94

原创 bash shell 08 bug

v=08echo $vshell里以0开头的都会把它当作8进制数字,所以$v会报错的。

2014-10-10 15:32:43 83

原创 php string

一.字符串类型        php一共有8中数据类型        4种基本类型            boolean            integer            float(double)            string        2种符合类型            array            object        2种特殊类型            NUL

2014-10-10 15:32:41 95

原创 简单的树的递归、非递归创建,前序中序后序遍历

扩展问题问题1.给定前序遍历结果和中序遍历结果,重建二叉树递归构造就可以了。Tree* create_by_order(int* pre,int* in,int size){ if(size0||pre==NULL||in==NULL){ return NULL; } int i=0; Tree* rt = malloc

2014-10-10 15:32:39 74

空空如也

空空如也

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

TA关注的人

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