- 博客(23)
- 收藏
- 关注
转载 一个redis集群的框架设计
原文地址:http://my.oschina.net/hejiula/blog/201542如下图所示: 整个结构玢如上图所示:zookeeper集群负责记录redis集群的部署信息,Monitor负责监控redis集群状态并将redis集群状态变化更新到zookeeper,client监控zookeeper redis状态信息变化,以调整与redis集群的交互。
2015-05-22 14:12:20
450
转载 我们的网站压力究竟在哪里
转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yuhongchun.blog.51cto.com/1604432/612032目前网站架构一般分成网页缓存层、负载均衡层、 WEB层和数据库层,我其实一般还会多加一层,即文件服务器层,这样我们在后面的讨论过程中,我们可以依次用这五层对网站架构来进行讨论;这里为了更具有说服力,我将用三个并发较
2015-05-19 15:33:00
424
转载 boost库中的智能指针向上转换
作者:朱金灿来源:http://blog.csdn.net/clever101 这里稍微解释下何谓指针类型的向下转换和向上转换。向下转换是指派生类指针转换为基类指针类型,向上转换是指基类指针类型转换为派生类类型。C++一般使用dynamic_cast转换符实现向上转换。智能指针可以毫无问题的进行向下类型转换,却不能使用dynamic_cast进行向上类型转换
2015-05-11 20:47:38
424
转载 vector.resize 与 vector.reserve的区别
原文出处:http://www.cnblogs.com/kex1n/archive/2012/05/22/2512789.htmlstd::vector的reserve和resize的区别1. reserve: 分配空间,更改capacity但不改变size2. resize: 分配空间,更改capacity也改变size如果知道vector的大小,resize一下可以当数
2015-05-11 19:22:50
432
转载 C++模板学习
原文:http://www.cnblogs.com/gaojun/archive/2010/09/10/1823354.html1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版
2015-05-11 11:12:47
321
转载 观察者模式及c++实现
原文地址:http://blog.csdn.net/mafuli007/article/details/7239709观察者模式概念:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。“Define a one-to-many dependency between objects so that when one object cha
2015-05-08 14:31:18
350
转载 一致性哈希算法及其在分布式系统中的应用
摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问题假设我们有一个网站,最近发现随着流量增加
2015-05-04 14:33:18
325
转载 std::setw(size)与std::setfill(char)
原文:http://hi.baidu.com/xagzznuwlgbagpq/item/f49cee1b098996751109b536头文件:#include #include using namespace std;功能:std::setw :表示占多少个字符,默认填充的字符为' '空格std::setfill:设置std::se
2015-04-30 16:48:24
1009
转载 ostringstream的用法
【本文来自】http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使
2015-04-30 16:28:17
678
转载 算法之二叉树各种遍历
转载原文出处:http://blog.csdn.net/sjf0115/article/details/8645991树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点
2015-04-20 13:58:00
386
原创 顺序容器
1、顺序容器有vectorlistdeque2、顺序容器适配器stackqueuepriority_queue3、初始化1)默认初始化vector ivec(10);//10个0vector ivec(10,8);//10个82拷贝初始化vector ivec;vector ivec2(ivec);3)通过
2015-04-20 13:42:35
372
转载 霍夫曼树压缩运用
原文地址:http://www.guokr.com/article/46865/数据是怎么被压缩的回答问题之前先来看看什么是压缩。当你有天走在路上,碰见熟人对你说:“吃了?”你一定知道他是在打招呼,既不是要请客也不是让你“没吃赶紧回家吃去”。这一句简单的“吃了”是礼貌和问好的体现,也是一种信息的压缩。笼统地说,把一系列已有信息通过一定方法处理,使得其
2015-04-20 11:49:09
2191
1
原创 STL stack容器
1、stack是一个自适应的容器。可以为stack>stack>stack>默认情况下stack指的是第一种。2、stack的操作stack s;1)判断是否为空s.empty()2)计算栈的大小s.size()3) 读出栈顶的元素s.top()4) 插入一个元素s.push(item)5)弹出一个元素s.pop();
2015-04-20 11:15:43
327
原创 STL List容器的使用
LIST本质上是双向链表的结构。定义list a;一、插入。1、第一种语法:a.insert(迭代器,元素); 表示在迭代器的前面插入元素,并且返回该元素的迭代器。1)在list的开头插入数据。eg: a.insert(a.begin(),1);//在开头插入12)在list的末尾插入数据。eg: a.insert(a.end(),2);//在末尾插入23)在中间插
2015-04-19 14:43:11
339
原创 Posix信号量与互斥锁
1、 sem_wait()、sem_post()既可以用于有名的信号量的PV操作,也可以用于无名的信号量的PV操作。sem_init()用于初始化无名信号量。 在linux下man sem_init,查看函数的原型:int sem_init(sem_t *sem, int pshared, unsigned int value); 无名信号量仍然可以应用于不同进程之间多线程之间的通
2015-04-16 17:30:24
419
原创 求第一次只出现一次的字符(只要求遍历一遍)
解决思路:1、使用哈希表,hash[256],遍历一遍字符串,得到每个字符出现的次数。2、设定一个Order数组,记录字符出现的次序,然后遍历次序数组,在hash表中找出它出现的次数,如果为1,那就找到符合要求的字符了。代码如下:#include char getUniqueChar(char *pStr){ int i = 0; if (NULL == pStr)
2015-04-16 14:47:25
515
转载 NIO与传统IO的区别
原文出处:http://blog.csdn.net/zhouhl_cn/article/details/6568119传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数
2015-04-16 12:08:56
404
转载 vector用法
转载出处:http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4
2015-04-15 13:28:33
325
转载 Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用
2015-04-01 22:24:44
352
转载 Linux下的多进程编程初步
最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只有顶到首页才能让更多的人学习。文章摘要: 多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多
2015-04-01 20:53:06
546
转载 TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:
2015-03-31 17:25:26
323
转载 TCP协议疑难杂症全景解析
目录(?)[-]说明网络协议设计TCP和IP协议TCP协议1TCP协议2有连接可靠传输数据按序到达的TCP21有连接22传输可靠性23数据顺序性24端到端的流量控制端到端意义上的TCP协议效率1三个问题以及解决2分析三个问题之间的关联3问题的杂糅情况IP网络之上的TCP1端到端的TCP协议和IP协议之间的矛盾2拥塞控制的策略21试探性的拥
2015-03-31 16:27:30
304
转载 快速排序
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列
2015-03-24 13:19:16
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人