自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@农夫(Ben.Liang)

技术、分享、原创、生活

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

原创 mysql cluster

写这篇文章的时候想了很久,纠结的是它的性能问题。mysql cluster目前只支持ndb引擎,但ndb引擎的速度的确不敢恭维。先来一组对比:插入:MYISAM:mysql> insert into all_behavior_myisam select * from all_behavior limit 100000;Query OK, 100000 ro

2013-04-26 11:09:53 670

原创 nginx源码分析-各模块说明

auth:农夫-Benemail:szjava#126.com(请把#换成@)blog:http://blog.csdn.net/zll_liangngx_core_module 核心模块ngx_errlog_module 日志模块 为什么叫errlog呢?ngx_conf_module 配置模块, 主要是解决配置文件并存储到相应的conf_t中ngx_events_mod

2012-09-07 11:56:09 2655

转载 浅谈web网站架构演变过程

前言我们以 javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能: 用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理  阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如 tomcat、 jetty、 j

2017-02-11 14:41:53 441

转载 AOF - Redis 设计与实现

AOFRedis 分别提供了 RDB 和 AOF 两种持久化机制:RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中。AOF 则以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的。 server [label = "命令请求"]; server -> aof [ label = "网络协议格

2014-01-02 14:50:03 2397

转载 linux 下开发服务性能评估参考表

一个专业linux开发人员,应该知道如何评估和预算自己服务,心中有个参考尺度。这个尺度就是一张表,用来评估换算。下面这个表示我收集的一些数据,不是很全,但是很基础。现在分享出来。同时也希望有朋友能补充一些数据。这样更加全面。对各位码农和架构师更有帮助。操作性能memset  1K150W次/s

2013-06-14 16:51:30 733

原创 linux daemon进程为什么要fork 2次?

daemon进程是后台守护进程,有时候也叫精灵进程(agent).linux 下server都是daemon进程。相信大部分开发人员都知道如何去写一个daemon进程。但是另一方面,大部分人不知道为什么要这么做,不少人是从某个地方copy一个函数,拿来主义。但是具体为什么这么实现,却不是很透彻。见过一些面试官或被面试人。很多人解释daemon进程存在的理由是因为僵死进程。或者输入输出。

2013-06-14 16:49:52 1985

转载 linux下so动态库一些不为人知的秘密

linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名。二者都使用广泛。本文主要讲动态库方面知识。      基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些动态库,使用ldd命令查看 # ldd /bin/lslinux-vdso.so.1 => (0x00007fff597ff000)libsel

2013-06-14 16:46:36 1716

原创 linux下设置history显示时间

vi /etc/bashrc 添加以下信息:# 设置保存历史命令的文件大小export HISTFILESIZE=10000000# 保存历史命令条数export HISTSIZE=1000000# 实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多个用户间的相互覆盖。export PROMPT_COMMAND="history -a"# 记录每条历史命令的

2013-06-14 15:46:45 1032

转载 VC字符串转换

一、BSTR、LPSTR和LPWSTR    在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。  那么什么是BSTR、LPSTR以及LPWSTR呢?  BSTR(Basi

2013-06-11 16:42:10 440

原创 WaitForSingleObject作用

临界区临界区是一种最简单的同步对象,它只可以在同一进程内部使用。它的作用是保证只有一个线程可以申请到该对象void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection );产生临界区void DeleteCriticalSection(LPCRITICA

2013-06-06 14:41:56 7700 1

原创 宏定义单引号和双引号

在宏定义中经常会用到#和##单井号(#)把传递过来的参数当成字符串进行替代如下示例: 程序代码#define display(name) printf(""#name"")int main() {display(name);}输出:name双井号(##)称为连接符在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的

2013-05-23 16:44:09 9507

原创 assert断言

有很多时间我们在开发程序的时间都需要调试,这时要加入大量断言assert语句,但assert加得太多程序会变慢。所以在发布程序前要调用#define NDEBUG 禁用断言.断言是一个宏,当表达式为假时抛出异常,产生abort#include assert(1 != 1);     断言触发assert(1 == 1);   断言不会触发

2013-05-23 10:22:47 588

转载 算法之hash表

hash表,有时候也被称为散列表。个人认为,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。打个比方来说,所有的数据就好像许许多多的书本。如果这些书本是一本一本堆起来的,就好像链表或者线性表一样,整个数据会显得非

2013-05-23 10:02:48 501

原创 typedef和#define的用法与区别

typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增

2013-05-23 09:40:24 596

转载 你刚才在淘宝上买了一件东西【技术普及贴】

你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com。这时你的浏览器首先查询DNS服务器,将www.taobao.com转换成ip地址。不过首先你会发现,你在不同的地区或者不同的网络(电信、联通、移动)的情况下,转换后的ip地址很可能是不一样的,这首先涉及到负载均衡的第一步,通过DNS解析域名时将你的访问分配到不同的入口,同时尽可能保证你所访问的入口是所有入口中可能

2013-05-17 00:37:34 869 1

转载 程序在内存中的分布

在现代的操作系统中,当我们说到内存,往往需要分两部分来讲:物理内存和虚拟内存。从硬件上讲,虚拟空间是CPU内部的寻址空间,位于MMU之前,物理空间是总线上的寻址空间,是经过MMU转换之后的空间。一般我们所说的程序在内存中的分布指的就是程序在虚拟内存中的存储方式。从低地址到高地址,可分为下面几段: 预留内存地址(操作系统维护的内存地址,不可访问) 程序代码区(只读,存代码和一

2013-05-16 16:50:33 503

转载 C++中的static关键字

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:[cpp]

2013-05-16 16:45:56 449

原创 mysql分区

一、什么是分区?分区跟之前的手工分表有什么区别?1、分区是mysql自动进行的,而手工分表为自己手工操作的。2、分区可以很好地将数据分布到各个磁盘中。3、分区只需要维护一个表,而分表则要维护好多表。二、查看是否支持分区mysql5.1及以上支持分区功能查看:mysql> show variables like "%partition%";+------

2013-04-23 16:28:26 630

原创 linux 配置jdk、jsp、servlet

下载jdkhttp://download.oracle.com/otn-pub/java/jdk/7u11-b21/jdk-7u11-linux-i586.tar.gz?AuthParam=1358846076_b941f8dfffb6981f5c3956a75b504240tar -zxvf jdk-7u11-linux-i586.gzmv jdk1.7.0_11/ /usr/local

2013-01-24 10:26:11 669

原创 linux 也可以T人

linux系统root用户可强制踢制其它登录用户,首先可用w命令查看登录用户信息,显示信息如下:[root2@inner ~]$ w 14:28:41 up 16 days,  3:58,  2 users,  load average: 0.00, 0.00, 0.00USER     TTY      FROM              LOGIN@   IDLE   JCPU

2013-01-22 14:24:13 540

转载 命令行查看memcache状态

memcache的运行状态可以方便的用stats命令显示。首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。这些状态的说明如下:pidmemcache服务器的进程IDuptime服务器已经运行的秒数time服务器当前的unix时间戳v

2013-01-10 09:41:55 371

转载 堆和栈

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态

2012-12-12 11:36:15 307

转载 c结构体字节对齐

首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的首地址等于整个结构体实例的首地址。比如有这样一个结构体:    struct vector{int x,y,z;} s;  int *p,*q,*r;  struct vector *ps;    p = &s.x;  q = &s.y;

2012-12-12 11:35:29 395

原创 c sockopt选项

Linux下getsockopt/setsockopt 函数说明【 getsockopt/setsockopt系统调用】     功能描述:获取或者设置与某个套接字关联的选项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的

2012-12-12 11:34:51 513

转载 c字节对齐

一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些

2012-12-12 11:33:15 367

原创 nginx优化配置说明

nginx 是一个高性能的http和反向代理 服务器,也是一个imap/pop3/smtp代理服务器user ben woyoudever; #工作进程使用的用户和组worker_processes 10; #打开的工作进程数,应该是cpu的个数worker_rlimit_nofile 10240; #指定一个进程最多打开的文件数 最好与ulimit -n 保持一致

2012-12-12 11:31:25 511

转载 nginx正则

Nginx Location 语法,与简单配置一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.二、Location语法语法:location [=|~|~*|^~] /uri/ { … }注:1、~   为区分大小写匹配2、~

2012-12-12 11:30:22 964

原创 nginx ssl使用

使用OpenSSL生成证书1、生成RSA密钥的方法openssl genrsa -des3 -out privkey.pem 2048这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:openssl genrsa -out privkey.pem 2048建议用2048位密钥,少于此可能会不安全或很快将不

2012-12-12 11:29:16 431

原创 SimpleSearch检索

<?php/** * 搜索 */ require_once 'sps.php'; $sps = new sps('192.168.0.211', '6162', 'test'); //链接搜索服务器 if ($sps == false){ echo $sps->errstr();

2012-12-11 18:26:26 883

原创 SimpleSearch创建检索库

<?php/** * 创建搜索数据库 */ require_once 'sps.php'; $sps = new sps('192.168.0.211', '6162', 'test'); //链接搜索服务器 if ($sps == false){ echo $sps->errstr();

2012-12-11 18:25:54 746

原创 SimpleSearch添加数据

<?php/** * 增加索引数据 */ require_once 'sps.php'; $sps = new sps('192.168.0.211', '6162', 'test'); //链接搜索服务器 if ($sps == false){ echo $sps->errstr();

2012-12-11 18:25:19 667

原创 SimpleSearch php接口说明

官方链接:http://code.google.com/p/simplesearch-sps/类:sps方法:set_charset($charset) 设置编码create_doc($doc_id) 添加一条记录的唯一索引值query($key, $query_obj, $start_num = 0, $return_num = 20)检索set_field($name,

2012-12-11 18:22:38 1074 1

原创 SimpleSearch安装说明

官方链接:http://code.google.com/p/simplesearch-sps/wget http://www.500ju.com/simplesearch/simplesearch-1.0.tar.gztar -zxvf simplesearch-1.0.tar.gzcd simplesearch-1.0./configure --prefix=

2012-12-11 18:21:30 836 1

原创 linux arp攻击防范

今天局域网存在arp攻击,两台linux服务器网络存在异常。马上动手处理arp的事情。1、清除arp缓存:arp -n|awk '/^[1-9]/{system("arp -d "$1)}'第二种方式:ip neigh flush  dev eth02、绑定网关mac到ipvi /etc/ethers  输入 192.168.0.1 00:22:AA:9B:

2012-11-22 15:35:51 899

转载 17家中国初创IT公司的失败史

看十个成功故事,不如看一个失败故事更让自己警醒。作为经历过过去12年中国互联网的老兵,我彻夜整理了有代表性的17个失败案例,为有志创业的人提供了从公司财务,定位,团队,市场,资本,政府监管,用户价值等各个方面的经验教训。也希望大家共同一起来探讨如何避免失败。1. 亿唐网 不少人还记得2000年北京街头出现的大大小小的亿唐广告牌,"今天你是否亿唐"的那句仿效雅虎的广告

2012-11-18 22:25:18 2485

转载 c/c++五十社区

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段2、htt

2012-11-02 00:24:45 2057

原创 linux shell变量说明

shell变量说明:$$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" …

2012-10-29 18:05:03 361

原创 mysql常用命令

mysqldump常用用法:1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名     mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc

2012-10-25 14:14:14 515

原创 coreseek安装测试

1、下载: http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz2、安装:tar -zxvf coreseek-4.1-beta.tar.gzcd coreseek-4.1-betacd mmseg-3.2.14/./bootstrap./configure --prefix=/usr/

2012-10-22 15:44:30 363

原创 postgresql安装

1、下载:http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz22、安装:tar -jxvf postgresql-9.2.1.tar.bz2cd postgresql-9.2.1./configure --prefix=/usr/local/webserver/pgsqlmake && make

2012-10-16 17:54:44 332

空空如也

空空如也

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

TA关注的人

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