自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

原创 php curl的CURLOPT_FOLLOWLOCATION选项报错

问题程序报错: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is sethttp头的location字段location字段出现在服务响应包里面,意思是当前请求的数据挪地方了,请再次请求location对应的地址获取数据。curl的CURLOPT_FOLLOWLOCA

2015-11-24 17:59:18 14208

原创 php与memcache结合做部分重页面做缓存处理

需求和现状我们的平台(php网站)由于业务日益负载,导致部分页面承载着很重的数据库查询压力,例如首页涉及很多的联表查询,业务详情页涉及一些鉴权和多表查询,我称之为“重页面”,为了提高查询速度,我决定使用业务缓存方法来处理一层。解决方法 平台的后端返回的都是json串,所以将json串作为value,前缀加页面标识(例如服务id等)作为key,存储json串。第一次请求时候做set动作,有效期为1小

2015-11-23 19:43:45 1330

原创 go语言-使用swig转化C++代码为go所用

服务端的某个项目,要考虑到性能问题,之前使用基于公司框架的php,性能有瓶颈,经过调研,决定使用go。因为之前有一个关键模块已经使用c++实现,所以计划使用go做HTTP容器,让go和c++模块结合起来。 在网上调研结合方案,go自带的cgo只支持c语言,swig工具可以支持多种语言结合c++,所以决定使用swig,这里简要叙述下swig的使用和一些发现的要点。 1. 我们解压了swig后,首先

2015-04-16 12:54:37 4319 1

原创 go语言-sublime上的go插件安装

项目要使用go,学习一下,首先选择IDE。 因为是服务端开发,所以首先想到在vim里面做配置,我主要是需要语法高亮和自动补全,语法高亮比较好搞,将源码(貌似最近的只有这个版本里面有go的vim配置啊)里面misc/vim下面的配置信息cp到家目录下的.vim文件夹下就行了,但自动补全时候,安装完gocode就一直没生效,没解决,最后放弃vim。 第二个选择是在windows下sublime安装g

2015-04-10 13:14:03 2971 1

原创 gearman-php的Net_Gearman库学习

按照这个英文帖子学习的 原文代码的备份例子1: 像我们展示了Net_Geaman的基本架构,client端主要代码:// 一个client对象,需要jobserver信息,一个数组$client = new Net_Gearman_Client (gm::$servers);// Example1就是function name$client->Example1 (array ('date'

2015-04-09 16:10:59 1303

原创 gearman-安装php扩展

项目需要一个调度模块,对定时任务、条件触发任务(例如按照流量)进行调度。我的设计是:一个扫描器定期扫描数据库里的未开始任务,将任务逐一发给gearman,gearman分发给workers,worker分布式地判断任务触发条件,如果满足触发条件,封装任务发送给gearman,gearman分发给workers,workers对任务进行执行。gearman的运行架构: gearman的clien

2015-04-08 19:14:05 1348

原创 find -exec 与 xargs的区别与使用

我一个项目的代码上线,是先checkout出代码然后整体copy过去的,可以避免在线上直接svn拉代码时候影响服务。 其中有这么两句:find . -type d -name ".svn" | xargs rm -rffind script/ -type f -exec dos2unix -o {} \;感觉xargs和exec很像,就学习了一下两者的使用和区别。 -exec 1.参

2015-04-03 16:15:34 876

原创 静态代码检查工具cppcheck初探

公司要搞类似工具,所以调研了一下,我负责调研基于正则匹配的工具,我选择了cppcheck。 cppcheck支持的功能: 基本流程图: PS: 符号化和simplify是对代码的两种处理,将代码简化为一个个token符号。看了部分源码。 cli文件夹下面是入口函数和命令行支持的东西。 sample里面是一些bad代码例子,可以用工具测试一下。 lib里面有很多的check

2015-03-26 20:14:34 1871

原创 机器性能监控的一些通用参数

近期在做机器级别监控的调研,看了看公司内部的监控系统,看到一些监控参数和报警阈值设定的规范,觉得值得参考,这里记录一下。机器监控采集项及说明 这里写图片描述机器监控推荐配置死机判断方法监控系统应该通过组合拳来判断服务器状态: 1.选择一个服务器的机器监控项,看是否正常按时输出。 2.连接服务器的ssh服务,看是否正常 3.连

2015-03-18 14:17:42 744

原创 压力测试时候Linux系统参数的调优

有个站点,我用ab做压测,结果ab总是返回错误,我做了如下的一些调优,最后正常了。nginx的配置.conf: worker_processes 32; worker_connections 65536;过多的TIME_WAIT在压力中,通过netstat发现很多TIME_WAIT的连接描述符:netstat -n | awk '/^tcp/ {++state[$NF]}

2015-03-12 15:44:07 1517

原创 nginx作为php站点的负载均衡实践

nginx负载均衡

2015-03-12 15:26:17 4040

原创 站点高并发写问题的一个解决实践

站点高并发写问题的一个解决实践我负责一个基于Yii的lamp站点维护和优化,其中有一个表的并发写很高,导致用户体验差,甚至写失败造成数据丢失,分析后发现这个表其实并发读要求很低,所以计划将写记录到log中,定期将log写入mysql。log4php在yii中使用log4php是Apache的一个log框架,下载下来的库,放在与yii中protected一个目录下。修改配置log4php/config

2015-03-12 14:16:00 939

原创 GitHub温故学习

我决定把自己觉得值得保留的代码放到一个地方,所以重新捡起自己的github账户,并复习一下整个git版本控制的使用。  1. github上面新建一个项目仓库,Linux机器上安装git客户端,不再赘述。  2. Linux上:  ssh-keygen -t rsa -C "emailaddress"  重新生成~/.ssh/下的ssh key,将公钥黏贴到github上的ssh

2015-03-12 11:46:35 718

原创 性能测试工具JMeter使用学习

项目中需要使用一个性能测试工具对开发的服务进行性能评估,调研后选择了JMeter,并进行了初步的学习和使用。  1. 工具获取。  jmeter基于Java,并隶属于Apache,下载地址:http://jmeter.apache.org/download_jmeter.cgi,当前的最新版本是2.12  2. windows GUI版本试用。  windows环境需要安装Java

2015-03-11 15:42:23 1107

原创 shell脚本处理日志的几个题目

统计IP访问:要求分析apache访问日志,找出访问页面数量在前100位的IP数。日志大小在78M左右。以下是apache的访问日志节选 202.101.129.218 - - [26/Mar/2006:23:59:55 +0800] "GET /online/stat_inst.php?pid=d065 HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0

2013-12-26 17:24:56 1702

转载 细谈C语言中的strcpy,strncpy,memcpy,memmove,memset函数

一.函数介绍:1、memcpy函数原型:extern void *memcpy(void *dest, const void *src, size_t count);用法:#include功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。注意:和strcpy相比,memcpy不是遇到

2013-12-26 16:17:33 705 1

原创 python学习:函数参数的packing和unpacking传递

def func_tuple(*args): # packing print type(args) for i in args: print idef func_dict(**dict): # packing print type(dict) print dictif __name__ == '__main__': t = (1,2,3,'hello') d = {'a':

2013-11-18 13:53:37 1635

原创 python写希尔、堆、快速、归并排序

1 希尔排序:def shell_sort(seq): gap = len(seq)/2 #pdb.set_trace() while gap > 0: for i in range(0, gap): for j in range(i+gap, len(seq), gap): for k in range(i, j, gap): if seq[j] < seq

2013-11-18 10:04:54 876 1

原创 rhel6配置本地yum源

1. 将光盘(或虚拟光盘的iso文件)挂载到/media下,根目录(或其他指定目录)新建个yum文件夹,然后:cp -a /media/RHELXXX/*   /yum/2. vim /etc/yum.repos.d/local.repo ,写入yum配置信息:[base]name=linux6baseurl=file:///yumgpgcheck=0enable=1

2013-11-18 09:56:56 826

原创 python写基础排序:冒泡、插入、选择

from random import shuffledef bubble_sort(seq): for i in range(len(seq)): for j in range(len(seq)-1, i, -1): if seq[j] < seq[j-1]: tmp = seq[j] seq[j] = seq[j-1] seq[j-1] = tmpdef

2013-11-07 17:05:40 508

原创 python学习十:copy模块、collections模块中的defaultdict、pydiction完成在vim中tab补全

1. copy模块中的深拷贝:python中都是引用传递,所以会出现以下情况:l1 = [1, 2]l2 = l1l2.append(3)print l1print l2# l1 = [1, 2, 3], l2 = [1, 2, 3]用[:]切片看似能解决,但是:l1 = [[1, 2], 3]l2 = l1[:]l2.append(4)# l1 = [

2013-11-01 17:26:27 659

原创 c语言总结:strcpy和strlen

char* strcpy(char* strDest, const char* strSrc) // 对于并不改变的参数,使用const限定{ assert((strDest != NULL) && (strSrc != NULL)); // 首先判断合法性 char* address = strDest; while((*strDest++ = *strSrc+

2013-08-31 21:28:36 572

原创 python学习九:SocektServer学习、bisect、list的sort详解、清空字典的两种方法、zip初探

1. SocketServer学习SocketServer基于socket提供一套快速建立socket服务器的框架,并可以通过Mix-in的技巧让单线程服务器进化为多线程或多进程服务器。Socketserver.py里面的类很多,下面一个一个介绍并介绍它们之间关系。BaseServer、TCPServer、UDPServer,前者是后两者的父类。在父类中实现了TCP与UDP服务器可以共

2013-08-31 21:27:25 649

转载 C++ 对象的内存布局(下)

原文链接:http://blog.csdn.net/haoel/article/details/3081385重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(

2013-08-28 20:49:44 490

转载 C++ 对象的内存布局(上)

原帖地址:http://blog.csdn.net/haoel/article/details/3081328本篇文章着重讨论下述几个情况下的C++对象的内存布局情况。 1)单一的一般继承(带成员变量、虚函数、虚函数覆盖)2)单一的虚拟继承(带成员变量、虚函数、虚函数覆盖)3)多重继承(带成员变量、虚函数、虚函数覆盖)4)重复多重继承(带成员变量、虚函数、虚函数

2013-08-28 20:47:59 427

原创 python学习八:网络编程初探

from socket import *HOST = "localhost"PORT = 21567BUFSIZE = 1024ADDR = (HOST, PORT)tcpCliSock = socket(AF_INET, SOCK_STREAM)tcpCliSock.connect(ADDR)while True: data = raw_input('>') if not

2013-08-28 20:16:38 672

原创 python学习七:正则表达式、多线程初探

1. 正则表达式import recontent = """Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands as a successor of a langua

2013-08-27 22:14:57 722

原创 python学习六:异常处理、map/reduce/filter内置函数、python集合(set)类型、元组转列表

1. 异常处理# three except methodstry: a = 1/0except Exception,e: print Exception,":",eimport tracebacktry: a = 1/0except: traceback.print_exc() f=open("exc.log", 'a') traceback.print_exc(fil

2013-08-27 22:06:39 673

原创 python学习五:执行linux命令的两种方法、提高运行效率、进制转换、切片详解、ip和mac获取

1. 执行linux命令(1)import os     os.system('ls -l') (2) import subprocess     subprocess.call('ls -l'.split())2. 提高运行效率下面说一下提高python执行效率的方法,这里只是说一点,python在引入模块过程中提高效率的方法。例如:(1)我们要使用o

2013-08-27 21:53:58 1086

原创 python学习四:import模块方法、可变参数、字典key判断、版本信息获取、列表解析、

1. import模块方法下面将具体介绍几种常用情况:(1)主程序与模块程序在同一目录下:如下面程序结构:`-- src    |-- mod1.py    `-- test1.py    若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *; (2)主程序所在目录是模块所在目录的父(或祖辈)目录

2013-08-25 14:09:31 1295

原创 python学习三:byteofpython的学习

一边看一边写了点测试代码。""" this is the learning testing of byteofpython book"""print r"RAW STRING: New lines indicated by \n"words = "what\'s"" your name?"print "AUTO CATENATE STRING: %s" % wordsresu

2013-08-24 19:17:35 577

原创 python学习二:路径搜索、模块加载、变量命名初探

1. 路径搜索python运行:win path环境变量类unix #!/usr/bin/python#!/usr/bin/env python模块的搜索路径:1.sys.path以list形式存储路径  可以向其中添加路径,sys.path.append("/...path...")2.修改PYTHONPATH环境变量2. 常用的帮助内建函数dir

2013-08-21 14:46:53 965

原创 python学习一:软件版本选择以及代码调试初探

开始学习python了,争取每天玩一点,写下点心得。1. 版本选择    官网下载了python 3.3的win安装程序并安装,写了如下简单的测试程序,想看看idle debugger的功能。CH_TYPE = "ch"EN_TYPE = "en"g_name_type = "ch" # ch / eng_first_name = "hang"def PrintFullNa

2013-08-20 22:01:20 658

php和mysql web开发

里面的内容规规矩矩,有板有眼,没有那种大气,也没有很深入的讲解,好像一本规矩的教科书,所以一开始我非常不了解他为什么被称作“圣经”。 这本书我读了至少3遍,从大二初,一直到大三上学期,期间我在做开发的时候都还想着拿它做参考,对于初学者,这本书确实是一本非常好的书

2014-12-21

PHP Objects, Patterns, and Practice, 4th edition

每个段落先提出问题, 给出实现, 并讨论成效, 对于OO入门有一定帮助,能够帮助开拓思路,对OO老鸟有参考价值,可以换换空气,让脑子清空一下,听听别人说什么,对开发新程序有一定作用

2014-12-20

Web Application Architecture_ Principles, Protocols and Practices

非常经典的书籍,介绍了web技术的方方面面,虽然不涉及细节,但会从让读者站在一定高度系统学习web知识。

2014-06-06

HTTP The Definitive Guide

HTTP技术的圣经。全面,易懂,经典。非常适合作为工具书来参考。

2014-06-06

空空如也

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

TA关注的人

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