自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

转载 gdb调试多线程 子进程

先介绍一下GDB多线程调试的基本命令。 info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。thread ID 切换当前调试的线程为指定ID的线程。 break thread_test.c:123 thread all 在所有线程中相应的行上设置断点thread apply I

2013-08-16 17:54:29 849

转载 MySQL中SQL优化和架构设计的一些简单想法

MySQL中SQL优化和架构设计的一些简单想法普通MySQL运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的MySQL了。优化无非是从三个角度入手:第一个是从硬件,增加硬件,增加服务器第二个就是对我们的MySQL服务器进行优化,增加缓存大小,开多端口,读写分开第三个就是我们的应用

2013-08-16 11:11:22 764

转载 哈希分布与一致性哈希算法简介

前言在我们的日常web应用开发当中memcached可以算作是当今的标准开发配置了。相信memcache的基本原理大家也都了解过了,memcache虽然是分布式的应用服务,但分布的原则是由client端的api来决定的,api根据存储用的key以及已知的服务器列表,根据key的hash计算将指定的key存储到对应的服务器列表上。基本的原理以及分布在这里我们通常使用的方法是根据 key的

2013-08-16 11:08:29 596

转载 memcache的一致性hash算法使用

一、概述  1、我们的memcache客户端(这里我看的spymemcache的源码),使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计算,进而确认每个key的存储位置。 2、常规hash算法的应用以及其弊端   

2013-08-16 11:06:08 709

转载 memcache经典介绍

简介memcached 常被用来加速应用程序的处理,在这里,我们将着重于介绍将它部署于应用程序和环境中的最佳实践。这包括应该存储或不应存储哪些、如何处理数据的灵活分布以及如何调节用来更新 memcached 和所存储数据的方法。我们还将介绍对高可用性的解决方案的支持,比如 IBM WebSphere® eXtreme Scale。所有的应用程序,特别是很多 web 应用程序都需要优化它们访

2013-08-13 23:56:55 619

转载 串行化初探

ps:过程类似于字节流的解析过程,只是这些存储在任何地方?串行化(serialization)是指将一个对象的当前状态转换成字节流(a stream of bytes)的过程,而反串行化(deserialization)则指串行化过程的逆过程,将字节流转换成一个对象,打回原形。一、串行化的意义: 1:解决Web应用程序的无状态弊端 一旦将某一对象串行化,得到的字节可以存储在文件

2013-08-13 23:33:11 774

转载 socket字节流解析(网络抓包解析)

研究了一下PHP和C++socket通讯,用C++作为服务器端,php作为客户端进行.socket通讯是基于协议的,因此,只要双方协议一致就行.关于协议的选择:我看过网上大部分协议都是在应用层的协议,选用这样的协议很方便,基本上就是字符串传过来,传过去本次研究的协议算是当今国际化的一个标准做法.length+flag+body(长度+类型+内容)的方式,total_

2013-08-13 23:27:35 15765 2

转载 vector的内部实现

假定你现在已经能熟练使用vector,如果你很好奇vector背后是怎么实现的,那么本文或许对你能有所帮助。   vector代表了c++的动态数组,大小是动态可增长的。你不必考虑自己手动分配或释放内存,也不必担心内存泄漏,vector帮你做了这一切。vector的使用很简单,但是要做到有效率,没那么容易,了解他背后的实现原理能帮助达到这一目的。  言归正传。本文基于SGI STL的一个v

2013-08-13 19:13:39 1387

转载 高并发高流量网站架构

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求。  本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容:  首先在整个网络的高度讨

2013-08-09 18:48:55 917

转载 如何才能做到网站高并发访问

文章架构简图:  高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。如:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了。能访问静态服务器的,就不要去访问

2013-08-09 18:48:15 887

转载 stl hashtable

一句话之Hashtable:哈希表(散列表)能通过键值对数据进行访问的数据结构;其在C++0X标准中未出现,可能是考虑到哈希表效率低下,出于其广泛用于工程中,C++11将其纳入了标准库。C++11的新特性:http://en.wikipedia.org/wiki/C%2B%2B11,C++11中哈希表的说明:http://en.wikipedia.org/wiki/C%2B%2B11#Hash_t

2013-08-08 22:17:55 3740

转载 stl hashmap与map hashmap与hashtable

STL map常用操作简介1。目录map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2。map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。3。map的功能自动建立Key - value的对

2013-08-08 22:16:09 17008 1

转载 bitmap处理海量数据

【什么是Bit-map】 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排

2013-08-08 20:01:06 1100

转载 getopt简介

函数getopt()用来分析命令行参数,其函数原型和相关变量声明如下: #include extern char *optarg; extern int optind,  // 初始化值为1,下一次调用getopt时,从optind存储的位置重新开始检查选项,也就是从下一个'-'的选项开始。 extern int opterr,  // 初始化值为1,当opterr=0时,geto

2013-08-07 11:21:59 769

转载 HTTP请求头详解

HTTP由两部分组成:请求和响应。当你在Web浏览器中输入一个URL时,浏览器将根据你的要求创建并发送请求,该请求包含所输入的URL以及一些与浏览器本身相关的信息。当服务器收到这个请求时将返回一个响应,该响应包括与该请求相关的信息以及位于指定URL(如果有的话)的数据。直到浏览器解析该响应并显示出网页(或其他资源)为止。HTTP请求HTTP请求的格式如下所示:[]在HT

2013-08-06 23:16:45 1771

转载 socket解析http协议头

/******* http客户端程式 httpclient.c ************/#include #include #include #include #include #include #include #include #include #include #include #include //////////////////////////////httpclient.c 开始//

2013-08-06 22:21:52 4279

转载 Volatile 锁用于同步相关

锁的主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥,一次就只有一个线程能够使用该共享数据。线程通过持有某个特定的锁,实现互斥访问资源。可见性,确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的。Volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性。Volatile 具有简易

2013-08-02 12:34:09 1863

转载 长短连接使用

长连接与短连接所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。  比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。

2013-08-01 22:21:07 926

转载 epoll ET LT模式详细

“EPOLLET”就是ET模式的设置struct epoll_event struEvent;struEvent.events = EPOLLIN | EPOLLOUT | EPOLLET;struEvent.data.fd = hSocket;    epoll_ctl(m_hEpoll, EPOLL_CTL_ADD, hSocket, &struEvent);如果将监听套接

2013-08-01 19:20:38 1913

转载 共享内存

注意:使用特殊文件提供匿名内存映射:适用于具有亲缘关系的进程之间; 由于父子进程特殊的亲缘关系,在父进程中先调用mmap(),然后调用fork()。那么在调用fork()之后,子进程继承父进程匿名映射后的地址空间,同样也继承mmap()返回的地址,这样,父子进程就可以通过映射区域进行通信了。注意,这里不是一般的继承关系。一般来说,子进程单独维护从父进程继承下来的一些变量。而mmap()返回的地址,

2013-08-01 18:47:57 603

转载 组播技术初探

1  概述1.1  产生背景传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播;另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播。如果要将信息发送给多个主机而非所有主机,若采用广播方式实现,不仅会将信息发送给不需要的主机而浪费带宽,也不能实现跨网段发送;若采用单播方式实现,重复的IP包不仅会占用大量带宽,也会增加源主机的负载。所以,传统的单播和广播

2013-08-01 15:37:34 1106

转载 fork之前之后文件描述符共享

在C程序中,文件由文件指针或者文件描述符表示。ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面重点来说下,文件描述符是如何工作的。文件描述符相当于一个逻辑句柄,而open,close等函数则是将文

2013-08-01 15:36:37 3796

空空如也

空空如也

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

TA关注的人

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