摘要:
【Redis Hash操作】1、HSETkeyfieldvalue Setsfieldin the hash stored atkeytovalue. Ifkeydoes not exist, a new key holding a hash is created. Iffieldalready ...
阅读全文
posted @ 2015-10-16 12:04
Tekkaman
阅读(1659)
推荐(0)
编辑
摘要:
【Varint 数值压缩】 Varint 是一种紧凑的表示数字的方法。它用一个或多个字节来表示一个数字,值越小的数字使用越少的字节数。这能减少用来表示数字的字节数。比如对于 int32 类型的数字,一般需要 4 个 byte 来表示。但是采用 Varint,对于很小的 int32 类型的数字,则可...
阅读全文
posted @ 2015-10-15 16:09
Tekkaman
阅读(547)
推荐(0)
编辑
摘要:
【LevelDB Version】 Version保存了当前磁盘以及内存中所有的文件信息,一般只有一个Version叫做"current" version(当前版本)。Leveldb还保存了一系列的历史版本,这些历史版本有什么作用呢? 当一个Iterator创建后,Iterator就引用到了...
阅读全文
posted @ 2015-10-14 21:44
Tekkaman
阅读(553)
推荐(0)
编辑
摘要:
【LevelDB Cache机制】 对于levelDb来说,读取操作如果没有在内存的memtable中找到记录,要多次进行磁盘访问操作。假设最优情况,即第一次就在level 0中最新的文件中找到了这个key,那么也需要读取2次磁盘,一次是将SSTable的文件中的index部分读入内存,这样根据这...
阅读全文
posted @ 2015-10-14 21:40
Tekkaman
阅读(944)
推荐(0)
编辑
摘要:
【LevelDB Compaction操作】 对于LevelDb来说,写入记录操作很简单,删除记录仅仅写入一个删除标记就算完事,但是读取记录比较复杂,需要在内存以及各个层级文件中依照新鲜程度依次查找,代价很高。为了加快读取速度,levelDb采取了compaction的方式来对已有的记录进行整理压...
阅读全文
posted @ 2015-10-14 21:10
Tekkaman
阅读(2228)
推荐(0)
编辑
摘要:
【LevelDB 读取记录】 LevelDb是针对大规模Key/Value数据的单机存储库,从应用的角度来看,LevelDb就是一个存储工具。而作为称职的存储工具,常见的调用接口无非是新增KV,删除KV,读取KV,更新Key对应的Value值这么几种操作。LevelDb的接口没有直接支持更新操作的...
阅读全文
posted @ 2015-10-14 16:35
Tekkaman
阅读(4271)
推荐(0)
编辑
摘要:
【LevelDB 写入与删除记录】 levelDb的记录更新操作,即插入一条KV记录或者删除一条KV记录。levelDb的更新操作速度是非常快的,源于其内部机制决定了这种更新操作的简单性。 图6.1是levelDb如何更新KV数据的示意图,从图中可以看出,对于一个插入操作Put(Key,Va...
阅读全文
posted @ 2015-10-14 16:08
Tekkaman
阅读(1328)
推荐(0)
编辑
摘要:
【SkipList】1、插入操作。 由于跳表数据结构整体上是有序的,所以在插入时,需要首先查找到合适的位置,然后就是修改指针(和链表中操作类似),然后更新跳表的level变量。 boolean insert(l,key,value) register list l; regis...
阅读全文
posted @ 2015-10-14 15:27
Tekkaman
阅读(240)
推荐(0)
编辑
摘要:
【LevelDb日知录之五:MemTable详解】 LevelDb日知录前述小节大致讲述了磁盘文件相关的重要静态结构,本小节讲述内存中的数据结构Memtable,Memtable在整个体系中的重要地位也不言而喻。总体而言,所有KV数据都是存储在Memtable,Immutable Memtable...
阅读全文
posted @ 2015-10-14 15:10
Tekkaman
阅读(559)
推荐(0)
编辑
摘要:
【LevelDB SSTable文件】 LevelDb不同层级有很多SSTable文件(以后缀.sst为特征),所有.sst文件内部布局都是一样的。上节介绍Log文件是物理分块的,SSTable也一样会将文件划分为固定大小的物理存储块,但是两者逻辑布局大不相同,根本原因是:Log文件中的记录是Ke...
阅读全文
posted @ 2015-10-14 12:18
Tekkaman
阅读(985)
推荐(0)
编辑
摘要:
【LevelDB Log文件】 log文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据。因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及Dump到磁盘的SSTable文件,LevelDB也可以根据log文...
阅读全文
posted @ 2015-10-14 11:47
Tekkaman
阅读(587)
推荐(0)
编辑
摘要:
【LevelDB 整体架构】 从图中可以看出,构成LevelDb静态结构的包括六个主要部分:内存中的MemTable和Immutable MemTable以及磁盘上的几种主要文件:Current文件,Manifest文件,log文件以及SSTable文件。当然,LevelDb除了这六个主要部...
阅读全文
posted @ 2015-10-13 21:46
Tekkaman
阅读(586)
推荐(0)
编辑
摘要:
【磁盘】 磁盘是一个扁平的圆盘(与电唱机的唱片类似)。盘面上有许多称为磁道的圆圈,数据就记录在这些磁道上。磁盘可以是单片的,也可以是由若干盘片组成的盘组,每一盘片上有两个面。 如下图11.3中所示的6片盘组为例,除去最顶端和最底端的外侧面不存储数据之外,一共有10个面可以用来保存信息。 ...
阅读全文
posted @ 2015-10-13 14:27
Tekkaman
阅读(645)
推荐(1)
编辑
摘要:
【LevelDB Filters】 Because of the wayleveldbdata is organized on disk, a singleGet()call may involve multiple reads from disk. The optionalFilterPolic...
阅读全文
posted @ 2015-10-13 11:04
Tekkaman
阅读(252)
推荐(0)
编辑
摘要:
【LevelDB Cache】 The contents of the database are stored in a set of files in the filesystem and each file stores a sequence of compressed blocks. Ifo...
阅读全文
posted @ 2015-10-13 10:37
Tekkaman
阅读(371)
推荐(0)
编辑
摘要:
【LevelDB 的缺憾】1、Snapshots 只能通过 DB::GetSnapshot() 创建,意即只能创建当下的 Snapshot。2、
阅读全文
posted @ 2015-10-12 21:17
Tekkaman
阅读(240)
推荐(0)
编辑
摘要:
【linux 同步IO: sync、fsync与fdatasync】 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要...
阅读全文
posted @ 2015-10-12 20:52
Tekkaman
阅读(735)
推荐(0)
编辑
摘要:
【Common Lisp】 1、操作符是什么? 2、quote。 3、单引号是quote的缩写。 4、car与cdr方法。 5、古怪的if语句。 6、and语句。 7、判断是真假。 null 与 not 方法。 8、递归。 9、缩排。
阅读全文
posted @ 2015-10-12 14:50
Tekkaman
阅读(236)
推荐(0)
编辑
摘要:
【函数式编程初探】1. 函数是"第一等公民"所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。2. 只用"表达式",不用"语句""表达式"(expression)是一个单纯的运算过程...
阅读全文
posted @ 2015-10-11 01:53
Tekkaman
阅读(291)
推荐(0)
编辑
摘要:
【TCP_NODELAY】 TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年...
阅读全文
posted @ 2015-10-11 01:41
Tekkaman
阅读(479)
推荐(0)
编辑
摘要:
【什么是First-class citizen?】 Inprogramming language design, afirst-class citizen(alsotype,object,entity, orvalue) in a givenprogramming languageis an en...
阅读全文
posted @ 2015-10-10 11:27
Tekkaman
阅读(1172)
推荐(0)
编辑
摘要:
【SQL】 数据库表,一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。下面的例子是一个名为 "Persons" 的表: SQL 对大小写不敏感!SQL DML 和 DDL可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数...
阅读全文
posted @ 2015-10-08 14:22
Tekkaman
阅读(186)
推荐(0)
编辑
摘要:
【ADO.NET】 ADO.NET provides consistent access to data sources such as SQL Server and XML, and to data sources exposed through OLE DB and ODBC.. Data-...
阅读全文
posted @ 2015-10-08 14:15
Tekkaman
阅读(153)
推荐(0)
编辑
摘要:
【外码】 ⑴主码是表中的一列或多列的组合,它的值唯一标识了表中的一行记录 ⑵外码是这样的一列或多列的组合,它存在于表1中,但不是表1的主码;它同时存在于表2中,而且是表2的主码,于是称这一列或多列的组合是表1相对于表2的外码。
阅读全文
posted @ 2015-10-03 10:54
Tekkaman
阅读(628)
推荐(0)
编辑
摘要:
【CWinApp: The Application Class】 An application built on the framework must have one and only one object of a class derived fromCWinApp.This object i...
阅读全文
posted @ 2015-10-03 10:12
Tekkaman
阅读(293)
推荐(0)
编辑
摘要:
【股票F10】 股票非行情类的基本面资料统称为股票F10 在各种金融行情终端软件中,用户通过键盘上的F10快捷键,可迅速查看上市公司的非行情信息,诸如:公司概况、财务数据、公司公告、公司新闻、经营分析等等信息数据[1]。
阅读全文
posted @ 2015-10-02 16:44
Tekkaman
阅读(328)
推荐(0)
编辑
摘要:
【什么是盘口?】 盘口上包括了股票当天的走势状况,主要包括五个部分:1、委托比;2、五档买卖挂单;3、开盘价收盘价、涨跌幅、最低最高价、量比、内外盘、总成交量;4、换手率、总股本流通股本、净资产、收益、动态市盈率;5、买卖成交单;以下阿早班车将会为您介绍一下个人感觉比较好用的方法和技巧。
阅读全文
posted @ 2015-10-02 16:34
Tekkaman
阅读(390)
推荐(0)
编辑
摘要:
【CompletionPort】1、CreateIoCompletionPort。此方法用于创建与绑定。此方法调用后,socket即退出,只能通过CompletionKey来辨认是哪个socket的消息。 CompletionKey是自定义数据,用于区分FileHandle。 NumberO...
阅读全文
posted @ 2015-10-01 11:03
Tekkaman
阅读(155)
推荐(0)
编辑
摘要:
【WSAEvent】1、WSACreateEvent。创建WSA事件。2、WSAEventSelect。 lNetworkEvents[in] A bitmask that specifies the combination of FD_XXX network events in which...
阅读全文
posted @ 2015-10-01 10:06
Tekkaman
阅读(716)
推荐(0)
编辑
摘要:
【SO_KEEPALIVE选项】 对于面向连接的TCP socket,在实际应用中通常都要检测对端是否处于连接中,连接端口分两种情况: 1、连接正常关闭,调用close() shutdown()连接优雅关闭,send与recv立马返回错误,select返回SOCK_ERR; 2、连接的对端异常...
阅读全文
posted @ 2015-09-30 17:32
Tekkaman
阅读(14613)
推荐(0)
编辑
摘要:
【SO_LINGER】 在默认情况下,当调用close关闭socket的使用,close会立即返回,但是,如果send buffer中还有数据,系统会试着先把send buffer中的数据发送出去,然后close才返回. SO_LINGER选项则是用来修改这种默认操作的.于SO_LINGER相关...
阅读全文
posted @ 2015-09-30 17:16
Tekkaman
阅读(1197)
推荐(0)
编辑
摘要:
【shutdown和close的区别】 当所有的数据操作结束以后,你可以调用close()函数来释放该socket,从而停止在该socket上的任何数据操作:close(sockfd); 你也可以调用shutdown()函数来关闭该socket。该函数允许你只停止在某个方向上的数据传输,而一个...
阅读全文
posted @ 2015-09-30 17:00
Tekkaman
阅读(533)
推荐(0)
编辑
摘要:
【TIME_WAIT和CLOSE_WAIT状态区别】 常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于...
阅读全文
posted @ 2015-09-30 16:42
Tekkaman
阅读(726)
推荐(0)
编辑
摘要:
【什么是2MSL】 MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文(segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼...
阅读全文
posted @ 2015-09-30 16:22
Tekkaman
阅读(8373)
推荐(1)
编辑
摘要:
【WSAStartup function】ParameterswVersionRequested[in]The highest version of Windows Sockets specification that the caller can use. The high-order byte ...
阅读全文
posted @ 2015-09-29 10:36
Tekkaman
阅读(422)
推荐(0)
编辑
摘要:
【Visual Assist X 快捷键】Shift+Alt+F Find References查找引用Shift+Alt+S FindSynbolDialog打开查找符号对话框Alt+G GotoImplementation调到实现Alt+M ListMethodsInCurrentFileAlt...
阅读全文
posted @ 2015-09-24 15:53
Tekkaman
阅读(2260)
推荐(0)
编辑
摘要:
【#import 指令】#import指令用于从一个类型库中结合信息。该类型库的内容被转换为C++类,主要用于描述COM界面。语法 #import "文件名" [属性] #import [属性]属性: 属性1,属性2,... 属性1 属性2 ...文件名是一个包含类型库信息的文件的名称。一...
阅读全文
posted @ 2015-09-24 14:30
Tekkaman
阅读(704)
推荐(0)
编辑
摘要:
【作经济预测徒劳无益】 “预测经济完全是徒劳无益的,不要试图预测利率。艾伦-格林斯潘是美联储的头儿。他无法预测利率。他可以加息或降息,但是他无法告诉你12个月或者两年后利率将是多少。你无法预测股市。” “我很希望能够知晓这些信息。对我来说,当衰退将要发生的时候获悉这种信息是很有帮助的。这会非常好。
阅读全文
posted @ 2015-09-22 10:33
Tekkaman
阅读(181)
推荐(0)
编辑
摘要:
【这是下一个伟大的公司】 “不管什么时候,当你听到"这是下一个……"的时候赶紧试着中断你的思维不要听后面的话,因为后面的话将永远是激动人心的。下一个伟大的公司永远都没有成功过。下一个玩具反斗城没有成功,下一个家德宝没有成功,下一个施乐没有成功施乐自己做的也不是很好,下一个麦当劳等等都失败了。” “任
阅读全文
posted @ 2015-09-21 20:36
Tekkaman
阅读(160)
推荐(0)
编辑
摘要:
现行版权制度是一种有缺陷的制度。它有很强的排他性,严格禁止分享。与其说它保护了创造者,不如说它保护了利润。 假设你读到一篇好文章,里面有你认为很有用的知识,会让很多人受益。你想把它放上网,让大家都看到。但是,现行版权制度禁止你这样做,因为会侵犯版权。法律规定,你无权与他人”分享”你不拥有版权的...
阅读全文
posted @ 2015-08-25 08:51
Tekkaman
阅读(293)
推荐(0)
编辑