自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (9)
  • 收藏
  • 关注

转载 使用iframe实现提交表单不刷新页面

正常情况下,当你向服务器发送数据的时候,你的浏览器将会打开ACTION页面,并且不会重回到当前页面。但是有的时候,我们因为各种各样的要求,而不希望浏览器在提交数据的时候去刷新当前的页面或者转向到新的页面.所以我们引入一个嵌入框架来解决这个问题。具体的原理是:当表单在提交数据的时候,不将提交目标设置为当前的页面,而是当前页面中的一个嵌入框架。首先你应该在body下面插入一个嵌入框架:

2015-12-23 15:51:17 695

转载 Windows下Redis的安装使用

发表于2年前(2014-02-28 18:41)   阅读(16337) | 评论(23) 196人收藏此文章, 我要收藏赞22摘要 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

2015-12-21 09:20:14 74

转载 MongoDB设置访问权限、设置用户

[html] view plaincopyMongoDB默认是不需要输入用户名和密码,客户就可以登录的。但是出于安全性的考虑,我们还是要为其设置用户名和密码。本文主要介绍的是MongoDB权限管理之用户名和密码的操作,希望能对您有所帮助。    AD:          本文我们介绍MongoDB权限管理,主要介绍的是如何设置用户名和密码

2015-12-20 23:15:16 834

转载 8天学通MongoDB——第一天 基础入门

关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。 一: 下载      上MongoDB官网 ,我们发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意:          ①:根据业界规则,偶数为“稳定版”(如:1

2015-12-17 10:54:29 359

转载 深入探讨this指针

深入探讨this指针 为了写这篇文章,准备了好长时间,翻遍了箱底的书籍。但是现在还是不敢放开手来写,战战兢兢。不是担心自己写错,而是唯恐自己错误误导别人。同时也希望这篇文章能给你一点收获。既然是深入探讨this指针,所以建议初学者,最好具有一定编译基础,调试基础。如果大家认为这片文章有不满的地方,就给我发信批评一下,以便及时修正。关于this指针的描述我们一般从语言层次上讲;thi

2015-12-09 09:16:48 432

转载 C++重载、重写、重定义

一、重载(overload)指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。(1)相同的范围(在同一个作用域中) ;(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。(5)返回值可以不同;二、重写(也称为覆盖 override)是指派生类重新定义基类的虚函数,特征是:(1)不在同一个作用域(分别位于派生类与基

2015-12-09 08:55:33 428

转载 nginx 源码学习笔记(十四)—— 全局变量ngx_cycle

再打算正式开始研究core模块式,发现有一个很重要的变量ngx_cycle_t,一直伴随,如果不懂ngx_cycle可能读起代码来回非常困难,这里就来详细学习一下吧。本文大部分灵感来自于。http://blog.csdn.net/livelylittlefish/article/details/7247080 和http://blog.sina.com.cn/s/blog_677be95b0100

2015-12-05 14:58:56 495

转载 nginx 源码学习笔记(十三)——文件读写和配置文件读取

对于c语言来说,如果需要支持多个操作系统,就需要封装一下文件的读写。封装文件的读写还有一个益处就是能够把读写异常,读写的内存控制,日志的记录封装起来,以便于其他的模块更好的应用。文件的读写一般会封装成打开文件,关闭打开的文件,读写文件。在nginx的源码中,文件读写主要放在core/ngx_file.c,core/ngx_file.h,src/os/unix/ngx_files.h

2015-12-05 14:57:55 569

转载 nginx 源码学习笔记(十二)——基本容器——ngx_buf

ngx_buf.{c|h}分为两种类型,一种是file,一种是memory。因此这里会有文件的一些操作域。[cpp] view plaincopyprint?typedef void *            ngx_buf_tag_t;    typedef struct ngx_buf_s  ngx_buf_t;    s

2015-12-05 14:57:11 448

转载 nginx 源码学习笔记(十一)——基本容器——ngx_list

ngx_list.{c|h}结构非常简单,如果你看过之前的array介绍,这一节可以一带而过:[cpp] view plaincopyprint?typedef struct ngx_list_part_s  ngx_list_part_t;  struct ngx_list_part_s {      void           

2015-12-05 14:56:10 357

转载 nginx 源码学习笔记(十)——基本容器——ngx_hash

ngx_hash.{c|h}实现了nginx里面比较重要的一个hash结构,这个在模块配置解析里经常被用到。该hash结构是只读的,仅在初始创建时可以给出保存在其中的key-val对儿,然后就只能进行“增删改查”操作了。先来看一下hash结构的内存布局:[cpp] view plaincopyprint?typedef s

2015-12-05 14:55:36 419

转载 nginx 源码学习笔记(九)——基本容器——queue

src/core/ngx_queue.{c|h}实现了一个队列的操作逻辑,队列的基本结构为一个双向队列基础数据结构为:[cpp] view plaincopyprint?typedef struct ngx_queue_s  ngx_queue_t;    struct ngx_queue_s {      ngx_que

2015-12-05 14:54:38 372

转载 nginx 源码学习笔记(八)——基本容器——array数组

对应文件为core/ngx_array.{c|h}ngx_array是nginx内部封装的,使用ngx_pool_t对内存池进行分配的数组容器,其中的数据是在一整片内存区中连续存放的。更新数据时只能在尾部压入1个或多个元素。这里单纯的觉得和数组没有差别。 数组的实现结构为:[cpp] view plaincopyprint?

2015-12-05 14:54:02 428

转载 nginx 源码学习笔记(七)——内存分配相关源码分析

内存分配相关1.      系统功能封装内存相关的操作主要在os/unix/ngx_alloc.{h,c} 和 core/ngx_palloc.{h,c}中。其中os/unix/ngx_alloc.{h,c}封装了最基本的内存分配函数,是对c原有的malloc/free/memalign等函数的封装,对应函数为:a.ngx_alloc:对malloc进行了简单的封装;

2015-12-05 14:53:11 394

转载 nginx 源码学习笔记(六)——nginx基本数据结构

简单的数据类型在core/ngx_confing.h中定义了基本的数据类型的映射,大部分都映射到c语言自身的数据类型:typedef intptr_t        ngx_int_t;typedef uintptr_t       ngx_uint_t;typedef intptr_t        ngx_flag_t;其中ngx_int_t,ngx_f

2015-12-05 14:52:02 356

转载 nginx 源码学习笔记(二十三)—— event 模块(四) ——timer红黑树

在二十一节中,提到过调用ngx_eventfind_timer()获取timer,然后传递给epoll模块,做等待时间,今天我们主要讲解下这个方法。本文来自于:http://blog.csdn.net/lengzijiannginx中的timer用红黑树的结构排序。ngx_event_timer_rbtree就是nginx中timer的红黑树。1.下面我们来看一

2015-12-04 09:47:21 825

转载 nginx 源码学习笔记(二十二)—— event 模块(三) ——epoll模块

上一节我们讲到了事件驱动的模块,它把我们引入epoll模块,今天我们主要学习下nginx如何使用epoll完成时间驱动,实现高并发;这里不详细讲解epoll原理,如果有机会再做一次单独的epoll的学习。本文来自于:http://blog.csdn.net/lengzijian回忆一下上一节的内容,在我们讲到ngx_process_events_and_timers时,在源码最后提

2015-12-04 09:46:22 402

转载 nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers

首先继续回忆下,之前子线程执行操作里面有一个未涉及的内容ngx_process_events_and_timers,今天我们就来研究下这个函数。本篇文章来自于:http://blog.csdn.net/lengzijian/article/details/7601730先来看一下第十九节的部分截图:今天主要讲解的就是事件驱动函数,图中的红色部分:

2015-12-04 09:45:22 740

转载 nginx 源码学习笔记(二十)—— event 模块(一) ——初始化

读完之前的学习笔记,相信已经对nginx的启动流程有了一定的认识,从这一节起我们想深入各个模块,学习各个模块的内的主要操作。本文来自于:http://blog.csdn.net/lengzijian/article/details/7598996今天我们就来学习下event模块,在之前的启动里多次提到了调用各个模块的钩子函数,我们先来回忆一下关于event模块钩子函数的

2015-12-04 09:43:52 509

转载 nginx 源码学习笔记(十九)—— nginx启动过程函数调用图

学了很久的nginx启动流程,今天决定复习下以前所学的知识,画一个函数调用图,一边之后快速阅读代码。希望对大家有用,由于我的博文被大量网站抓取而且不标注来源,所以决定在图上加上水印,希望各位同学不要喷我。 该文章来自:http://blog.csdn.net/lengzijian/article/details/7597852  另外:因为不知道大家

2015-12-04 09:42:18 418

转载 nginx 源码学习笔记(十八)—— ngx_add_inherited_sockets 继承的sockets

之前几节有讲过多进程的创建过程和子进程所处理的事情,今天要讲一下nginx里面main函数的另一个主要的操作ngx_add_inherited_sockets。ngx_add_inherited_sockets:服务器监听套接字的封装。本文的主要灵感来自:http://blog.csdn.net/livelylittlefish/article/details/7277607,感谢

2015-12-04 09:40:44 552

转载 nginx 源码学习笔记(十七)—— ngx_worker_process_cycle子进程执行

上一节主要讲解主进程如何开启子进程,并且讲解了主进程做的一些操作,这一节主要学习子进程处理函数ngx_worker_process_cycle[cpp] view plaincopyprint?src/os/unix/ngx_process_cycle.c    static void  ngx_worker_process_cycle(

2015-12-03 19:09:47 698

转载 nginx 源码学习笔记(十五)—— ngx_master_process_cycle 多进程(一)

了解core模块之前还应改学习ngx_start_worker_processes函数,今天我就来详细学一下这个方法,主要内容来自于http://blog.sina.com.cn/s/blog_677be95b0100iivk.html。 nginx的进程启动过程是在ngx_master_process_cycle(src/os/unix/ngx_process_cycle.c)中

2015-12-01 20:14:26 423

转载 nginx源码分析—全局变量ngx_cycle的初始化

链接:http://blog.csdn.net/livelylittlefish/article/details/7247080Content0.序1. ngx_cycle_t结构2. ngx_init_cycle()分析3.注意问题3.1如何调用CORE模块的callback函数?3.2 open_files链表中的文件名何时初始化?

2015-12-01 19:51:04 118

微服务设计(中文完整版)

过去十年中,分布式系统的粒度变得越来越细,包含大量代码的单块应用逐渐转变为自包含的微服务。但开发微服务系统也有一些让人头疼的问题。本书通过大量的例子,全面讨论了系统架构师和管理员在构建、管理和演化微服务架构时必须考虑的问题,并给出了实用的建议。

2018-05-30

重构:改善既有代码的设计

本书清晰揭示了重构的过程,解释了重构的原理和践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

2018-05-24

effective c++(第3版)

《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)》内容简介:有人说C++程序员可以分为两类,读过Effective C++的和没读过的。世界项级C++大师scott Meyers成名之作的第三版的确当得起这样的评价。

2018-05-24

MYSQL必知必会

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2018-05-22

第一本Docker书带书签目录(完整版)

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2018-05-22

go语言圣经

Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

2018-05-22

[精通正则表达式(第三版)].(美)佛瑞德.扫描版

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

2018-05-22

The_AWK_Programming_Language中文

AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。

2018-05-22

sed与awk(第二版)

Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用。

2018-05-22

空空如也

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

TA关注的人

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