- 博客(24)
- 资源 (3)
- 收藏
- 关注
原创 PDO防注入原理分析以及使用PDO的注意事项
我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题:为什么要使用PDO而不是mysql_connect?为何PDO能防注入?使用PDO防注入的时候应该特别注意什么? 一、为何要优先使用PDO?PHP手册上说得很清楚:Prepared statements and stored procedures
2015-02-06 10:42:25 640
转载 ShortUrl短网址算法 PHP版本
ShortUrl短网址算法 1、将长网址md5生成32位签名串,分为4段, 每段8个字节;2、对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理;3、这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串;4、总的md5串可以获得4个6位串; 取里面的任意一个就可作为这个长u
2014-08-30 13:56:08 1530
转载 Linux系统函数read()/write()/pread()/pwrite()的区别
在Linux和UNIX中有很多的输入输出函数,有时真是让想跟它攀点关系的菜鸟们束手无策。先来看看都有哪些函数,通过解析与总结,看看能不能让大家能这些函数有个理性的认识,哦,原来是这么回事,也就算我没白花这份闲。内核文件I/O->标准库I/O->高级I/O->IPC中1. read()/write();2. pread()/pwrite();3.
2013-12-27 00:54:39 19497
原创 c/c++内存对齐技术之图文终极解释[原创]
由于在研究多个开源软件的时候,多多少少都会看到这些软件的在对内存进行分配的时候都会使用到内存对齐技术,经百般研究整理出一张简单的图出来供大家参考,如有不对的地方欢迎大家指出,时间忙我就不解释那么多了,直接看图就知道了吧。
2013-12-26 18:52:13 756
转载 MySQL源码分析:Innobase字典管理及索引
最近在看innobase加载B树索引的时候发现了innodb的字典管理和索引加载。 在innobase中,最基本的有四个系统表,用来存储用户定义的表、列、索引及索引列等信息,这些表分别为SYS_TABLES、SYS_COLUMNS、SYS_INDEXES、SYS_FIELDS。每一个表的列分别如下: 1)、SYS_TABLES,用来存储所有的以innobase为存储引擎的表,每条记录对
2013-12-11 00:22:09 1729
转载 Innodb存储引擎查询输出分析(包括查询过程do_select()函数)
MySQL查询逻辑以及结果的输出有规律吗?本身问题是不值得讨论的,突然被问到这个问题时,觉得有必要把其深入的实现原理搞明白。因此,通过一些实验进行验证,并跟踪源码,对现有的查询有了深入的理解。源码分析查询于存储引擎的实现密切相关,因此,以下内容主要针对Innodb存储引擎的查询处理进行深入研究。对于查询输出的入口点,本文从do_select()(sql\sql_select.cc)函数开始
2013-11-16 14:40:24 1853
转载 理解MySQL数据库覆盖索引
导读:本文介绍了MySQL数据库中的覆盖索引(covering index),MySQL只需要通过索引就可以返回查询所需要的数据,而不必在查到索引之后再去查询数据,所以性能提升明显。关键词:覆盖索引 MySQL数据库 性能提升 SQL查询 话说有这么一个表:CREATE TABLE `user_group` ( `id` int(11) NOT NULL auto_inc
2013-11-12 23:07:47 731
原创 MySQL源码分析及核心内幕之4 -- 源码服务端main函数开始及启动流程
在启动mysql时,要经过一定的初始化过程,而这个初始化到底做了什么呢,今天开始来研究研究。 mysql的启动和其他C/C++软件系统一样,也是从main函数开始,该函数在sql/main.cc文件中,在该文件中就仅有一个函数,如下(版本不同会有差异):/* main() for mysqld. Calls mysqld_main() entry point expor
2013-09-08 14:08:10 1460
原创 MySQL源码分析及核心内幕之3 -- 源码调试之Eclipse C/C++
在上一篇文章中,我讲到使用gdb对mysql源码进行调试,本篇文章将使用大家熟悉的Eclipse C/C++进行调试,之所以使用Eclipse是因为其强大的调试功能,以及可以对源码进行直观的阅读,当然还有其他的源码阅读工具,看自己使用习惯了,要使用Eclipse C/C++,得先安装JDK,才能运行Eclipse C/C++,这里就不介绍安装JDK的方法了,网上一大堆,另外MySQL的源码得先编译
2013-08-31 11:39:04 1435
原创 MySQL源码分析及核心内幕之2 -- 源码调试之gdb
由前面一篇博文中,我们已经知道,MySQL源码目录下的BUILD目录是各种平台使用的编译脚本,我们要用的是debug版本,以方便我们使用gdb来调试MySQL,所以使用的脚本是BUILD/compile-pentium-debug来配置MySQL的编译,首先,进入mysql源码根目录,执行以下命令:>BUILD/compile-pentium-debug --prefix=$HOME/mysq
2013-08-28 00:09:53 1470
原创 MySQL源码分析及核心内幕之1 -- 源码目录结构
一直以来都在使用MySQL来做数据库开发,但是MySQL底层是如何实现大数据量的存储对我来说一直是个未知数,并且现在很多公司都会使用MySQL来作为后端数据存储工具,其简单强大的特点深受广大公司青睐。现在在公司开始接触性能优化方面的任务,由于MySQL数据量已经很庞大,单表数据量已达数千万,有些甚至是亿级的数据量,这样给查询带来了很大的挑战,经常有502的问题出现,数据库查询压力不断上升,甚至最近
2013-08-25 18:31:03 1670
原创 在CentOS release 5.6上安装gearman及php扩展错误记录
之前在较新版本的CentOS上安装gearman没有发现什么问题,但这次是在公司开发服上安装gearman,由于使用CentOS release 5.6版本,较旧,导致出现很多问题,今天仅仅把错误记录上来,以下是错误信息: >makegearman.h:53:27: error: tr1/cinttypes: No such file or directory#原因是g++ ,gc
2013-08-22 17:24:24 1488
原创 企业级定时任务调度框架Quartz中文文档chm
作业调度,在一个大的组织中每天的每小时跑上百个作业已属普遍。并且作业的规模与复杂性仍在持续的上扬,因此批量作业和作业调度器也就随需应生。Quartz的使用场景主要为:1:定时邮件提醒和告警。2:定时执行文件传输操作3:定时创建销售报表4:定时产生日志信息....等等这里为Quartz的中文文档,很感谢原翻译作者下载地址为:http://download.csdn.net
2013-07-21 16:58:59 1596
原创 流媒体技术服务器常用部署方式
流媒体网站的服务器主要分为两个部分:流服务 与 web服务。流服务器使用常crtmpserver作为原型,为主播提供推流服务,为用户提供拉流服务。流服务分为源管理节点(SM),源节点(SP)以及边缘节点(EP)。三种类型的节点为层级关系。一般主播通过dns获取源节点的ip,向源服务器推流。源服务器收到主播流之后,向源管理上报该主播的流信息(每个主播有唯一的id号)。用户从边缘节点拉流,边缘
2013-07-16 14:11:50 3015 3
原创 CentOS下使用supervisor监控应用进程
supervisor的优点:1:管理你的worker进程,让你的进程随机器启动而启动,当某个worker宕掉时自动重启该worker2:可以配置指定worker的启动个数3:supervisor管理的进程必须是非守护进程。4:采用kill -9强制杀掉supervisord进程,那么supervisor管理的worker将由init进程管理,并继续运行,不会关闭,并且能正常服务于c
2013-07-12 16:01:51 4486
原创 CentOS6.3下压力测试工具Siege的并发测试
今天在CentOS 6.3下做了Siege工具的压力测试,主要是测试一下Siege工具的使用。我的环境如下:操作系统:CentOS 6.3开发环境:Nginx1.0 + PHP5.3 + php-fpm(nginx开启2个worker进程,php-fpm最大开启30个worker进程)硬件环境:1G内存 + i5英特尔4核CPU 1:安装Siege>wget http:
2013-07-11 20:57:47 1804
原创 在酷狗繁星网的日子
在我接到酷狗的面试通知的那天,其实也是我在另一家公司上班的第一天,当时没有抱太多的期望。也是偶然的机会,第二天,我请假去体检,发现是顺路,就顺便去了酷狗面试,和一般的面试差不多,做题和面试,由于我技术基础还不错,沟通还可以,笔试和面试基本都没有问题,等到了下午,直接获得了人力资源部的二面,到了晚上就拿到了offer,一切感觉好突然,也有点惊喜。二话不说,上班走起。 到公司后,发现我
2013-07-10 23:54:06 2581 3
原创 细数研究过的开源项目
研究那么多,唯一的遗憾就是没能把每一步记录下来,所以,从这里开始... 大学四年很快,没有取得什么成就,整天碌碌无为,但总得留下点什么,算是一个总结吧。一切仿佛还在昨天,那些经典的片段,那些大牛们的杰作,仍历历在目,但真正要研究起来却相当不容易,少的几千行,多的十几万行,而且涉及多种开发语言,这给研究过程增加了很多的困难,那寂寞,那艰辛谁能懂?不是看到谁在研究我才研究,也不是
2013-07-10 23:14:11 978
原创 Java中多线程Synchronized使用技巧
public class Something(){ public synchronized void isSyncA(){} public synchronized void isSyncB(){} public static synchronized void cSyncA(){} public static synchronized void cSyncB(){} }
2013-07-10 22:52:23 821
原创 php str_replace json_decode函数心得
最近研究了繁星网的代码,看看有没有什么漏洞,包括xss漏洞,敏感字符过滤漏洞,尝试对用户留言的代码进行了研究。发现json_decode函数对包含反斜杠“\”的json数据进行解码时会抛出异常,这是之前未发现的,当然,对某些格式的数据,比如\u22\u3e,不会抛出异常。当研究到str_replace函数时,发现该函数竟然是二进制安全的,因为无论你输入字符串的任何格式,它都可以匹配到并进行
2013-07-10 14:00:45 1480
原创 虚拟机搭建LVS负载均衡DR直接路由模式
在公司闲了,研究研究自己喜欢的东西,哈哈,这两天安装部署了LVS负载均衡环境,搞了很久才配置成功,不容易啊。下面是我的环境:虚拟机A:IP:192.168.213.129操作系统:CentOS 6.3虚拟机B:IP:192.168.213.128操作系统:Ubuntu 12.04虚拟IP设置为:192.168.213.130上面两个虚拟机我这里已经安装了Ngin
2013-07-10 12:56:47 2236
Quartz企业级任务定时调度框架教程中文版chm
2013-07-21
Gearman中文手册最新完整版chm
2013-07-10
Gearman中文手册,Gearman中文详解,gearman手册chm
2013-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人