2017年3月24日

摘要: Redis存在三种级别的分布式部署:主从复制、主从切换、集群配置,推荐使用主从切换模式。 主从复制 readWriteHosts:配置为主服务的地址 localhost:6379 readOnlyHosts:配置为从服务的地址 localhost:6380 4. 该模式可以实现读写分离,提高系统的整 阅读全文
posted @ 2017-03-24 15:31 stronger 阅读(870) 评论(0) 推荐(0) 编辑
摘要: Mongodb存在三种级别的分布式配置:主从配置、集群配置以及集群分片配置,建议我们采用集群配置。 主从配置 这种方式简单灵活,可用于备份、故障恢复,读扩展。为了平衡负载,一般通过读写分离模式,即主库写、从库读。缺点是如果主库down了,就不能写了,不会自动恢复。 集群配置 4. 执行rs.init 阅读全文
posted @ 2017-03-24 15:20 stronger 阅读(250) 评论(0) 推荐(0) 编辑

2012年8月28日

摘要: 第12章 类在类内部定义的成员函数,将自动作为inline处理。也可以显式的将成员函数声 明为inline。inline成员函数的定义必须在调用该函数的每个源文件中是可见的,故inline函数的定义通常放在定义该类的头文件中。类声明:为了在类定义之前使用它,我们可以先声明它,此时该类称为不完全类型。不完 全类型只能以有限访问时用。不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用与声明(而不是定义)使用该类型作为形参类型或 返回类型的函数。类的声明一般用来编写相互依赖的类。可以把数据成员声明为nutable(不能同时为const修饰),mutable数据成员可以在con 阅读全文
posted @ 2012-08-28 21:52 stronger 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 第17章 用于大型程序的工具栈展开:用于描诉在查找catch捕获抛出异常的函数过程。在进入相应catch之前,撤销在异常之前构造的局部对象。重新抛出:一个空的throw——没有指定表达式的throw。只有捕获子句或者从catch直接或间接调用的函数中的重新抛出才有效,其效果是将接到的异常对象重新抛出。捕获所有异常的catch子句为catch(...)。如果catch(...)与其他catch子句结合使用,它必须是最后一个,否则,任何跟在它后面的catch子句都将不能被匹配。函数测试块:为了处理来自构造函数初始化的异常,必须将构造函数编写为函数测试块。 T::T() try : val(0),s 阅读全文
posted @ 2012-08-28 21:48 stronger 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 第15章 面向对象编程虚函数:基类希望派生类重新定义的函数定义为virtual。除了构造函数外,任意非static成员函数都可以是虚函数(一般需要定义虚析构函数)。保留字只在类内部的成员函数声明中出现,不能用在类定义体外部出现的函数定义上。派生类型必须对想要重定义的每个继承成员进行声明,且必须与基类中的定义方式完全匹配(只有一个例外,返回对基类型的引用或指针,可以变为返回派生类型的引用或指针)。一旦函数在基类中声明为虚函数,它就一直未虚函数。动态绑定:动态绑定使编译器能够在运行时决定使用基类中定义的函数还是派生类中定义的函数。要触发动态绑定,必须满足两个条件:第一,只有指定为虚函数的成员函数才 阅读全文
posted @ 2012-08-28 19:06 stronger 阅读(524) 评论(0) 推荐(0) 编辑

2012年8月25日

摘要: const使用总结 const修饰变量,表示该变量为常量,必须在定义是初始化,且不能修改它的值。const修饰指针:const int *ip = &val:ip是指向const对象(int)的指针,即不能通过(*ip)修改val的值(如果val不是const常量,可以通过其他方式修改val的值);int *const ip = &val:ip是指向int对象的const指针,即不能修改ip的值,但(*ip)的值可以修改;const int *const ip=&val:ip是指向const对象的const指针。Const修饰函数:const int& op(c 阅读全文
posted @ 2012-08-25 19:33 stronger 阅读(401) 评论(1) 推荐(0) 编辑

2012年8月24日

摘要: Java Concurrency In Practice第一章 介绍线程的优势:充分利用多处理器简化模型简化异步事件的处理提供用户界面的响应(时间)线程的风险:安全的风险(不好的事情会发生),提高错误出现的几率活性的风险(好的事情不会发生),如某些代码不会执行,出现死锁、活锁以及饥饿性能的风险,不好的多线程编程可能会危害性能第二章 线程安全编写线程安全的代码,实质是管理对状态的访问,尤其是那些共享、可变的状态。对象的状态包括任何能影响它外部可见行为的数据。 当有过个线程能访问状态变量时,而且他们当中能对变量进行修改,则需要对他们进行同步管理。 在Java中实现同步的方式有:使用synchron 阅读全文
posted @ 2012-08-24 19:33 stronger 阅读(5008) 评论(0) 推荐(0) 编辑

2012年8月21日

摘要: C++ Primer学习笔记(第一部分)第2章 变量和基本类型在命令行下看main函数的返回值,Unix为(echo $?),Windows为(echo %ERRORLEVEL%)。为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符(null)。多行字面值:在一行的末尾加一反斜线符号(\)可将此行和下一行当做同一行处理。C++支持两种初始化变量的形式:复制初始化和直接初始化。复制初始化语法用等号(=),直接初始化则是把初始化放在括号中。声明和定义:声明不能初始化,也不会分配空间。在C++语言中,变量必须且仅能定义一次,而且在使用变量之前必须定义或声明变量。因为常量在定 阅读全文
posted @ 2012-08-21 21:09 stronger 阅读(1057) 评论(0) 推荐(2) 编辑
摘要: AMP学习笔记第1章 引言本书重点讲述:共享存储器通信方式下的多处理器编程技术,这样的系统称为共享存储器的多处理器,现在也称之为多核。本书原理部分着重于可计算性理论:理解异步并发环境中的可计算问题。理解可计算性的关键在于描述和证明特定程序的实际执行行为,更准确的说,即程序正确性问题。程序正确性主要关心两个概念:安全性:说明了“不好的事情”绝不会发生;活性:是指一个特定的“好的事情”一定会发生。一些概念互斥:两个或两个以上的事物不能同处于一状态(临界区)无死锁:有事物能进入某状态(临界区)无饥饿:任何事物都能进入某状态(临界区)等待:容错:在某事物出现错误时,系统如何处理通信的两种类型瞬时通信: 阅读全文
posted @ 2012-08-21 10:08 stronger 阅读(3316) 评论(0) 推荐(1) 编辑

导航