
数据库
zmrlinux
密码学 欢迎私聊一起学习
展开
-
C++自制Redis数据库(五) 设计开始 敲定各模块架构--数据库模块
数据库模块服务器中的数据库存储方式:关于这个数据库的东西我在说说吧。首先这是一个缓存数据库,这就导致它必然是在内存中的,并且是常驻内存,存在于服务器之中,首先在全局有数据库的一个结构是用来保存数据库的,一个服务器上会有很多个数据库实体,就像上边的数据库0,一般一个redis 服务器开16个数据库实体,应用层的程序需要写清楚它要给哪一个数据库发送数据。下面来说说具体是怎样...原创 2016-02-07 23:29:51 · 469 阅读 · 0 评论 -
C++自制Redis数据库(四) 设计开始 敲定各模块架构--网络模块
网络模块这次的网络模块主要使用I/O多路复用,就是reactor 模型,结合线程池来实现服务器的主体逻辑。注册三个事件,读事件,写事件,连接事件。都是经典的网络编程范式,在这里不做过多的介绍。不过在包的数据结构设计方面肯定需要设计一番,但是这个数据关系到数据库的设计,所以我们后边再设计数据结构。现在有两种情况,使用epoll 还是用libevent 函数库,还要研究一下。大体结构如...原创 2016-02-07 23:42:27 · 409 阅读 · 0 评论 -
C++自制Redis 数据库(九) 详细数据库存储结构,线程相关已解决
昨天看了下C++的线程相关东西,决定使用线程池来作为任务完成实体,并且已经学习了欢神的C++ 线程池,学到不少东西,今天开始搞数据库存储设计。数据库模型我详细的画了出来。...原创 2016-02-10 15:35:45 · 564 阅读 · 0 评论 -
C++自制Redis 数据库(十二) 初级存储引擎已经测试完毕
简单数据库存储引擎基础测试,非压力测试,压力测试结果并不作为初级版本的性能衡量指标。第一级测试:1.独立元素测试成功2.链表元素测试成功第二级测试开始1.链表添加元素测试 链表结合字符串 成功 链表结合整数 成功2.整数类集合元素测试 整数类集合 成功3.哈希表添加元素测试 整数类哈希表 成功 字符串类哈希表 成功4.伪哈希表添加元素测试 整数类伪哈希表 成功 字符串类伪...原创 2016-02-21 20:38:06 · 687 阅读 · 0 评论 -
C++自制Redis 数据库(十)数据结构类
随着项目的缓慢进行,整个项目的结构逐渐清晰,看来我之前的设计架构是相对合理的,至今在大结构上未见致命及影响扩展性的错误,但是相信以后还是会出现的,毕竟工程实践中错误一定会出现,并且有些错误肯定会重复出现。我逐渐发现C 和 C++的区别还是很大的,即使原作者使用C写出了面向过程的思想,但是我用C++直接写起来还是有点不适应,可能是之前C用的比较多,JAVA还没好好学吧,但是这并不能成为我的绊脚石...原创 2016-02-13 00:56:59 · 492 阅读 · 0 评论 -
c++自制Redis 数据库(十四)阶段性小结
这次的自制数据库基本结构已经完成了,数据库模块,持久化模块,网络模块,按照大范围来说其实也就这三个大模块,其中的许多子系统我之前也已经说过了,这里不再废话,网络模块的数据收发已经测试完成了,但是还有很多不尽人意的地方,比如说分包功能其实没有做。就剩下信息的发送和接收的信息解析状态机了。 好在,我马上就会着手重构这个项目了,相信在V1.2它定会脱胎换骨,总的来说这次寒假...原创 2016-02-29 21:06:50 · 407 阅读 · 0 评论 -
C++自制Redis 数据库 (十五)【重构】数据库学习(一)
前言:准备开始重构我的这个项目了,但是我之前并没有系统学习过数据库,正好学校这学期也开了数据库这门课程,然而学校实在讲的太慢了,我还是自己学习课本吧,这样至少碧学校教学快2倍。所以下来会是一些自学的笔记.数据库系统原理与应用 第一章 导论一.数据库的发展第一阶段:数据库存储是由卡带,简易磁盘这些东西存储数据,所以是人工管理阶段,数据不具有独立性,不能有效稳定持久化,没...原创 2016-03-01 15:06:57 · 609 阅读 · 0 评论 -
C++自制Redis 数据库 (十五)【重构】数据库学习(二)
关系数据库关系数据模型由,关系数据结构,关系数据操作,关系完整性约束组成关系的定义1.域域是一组具有相同数据类型的值的集合。2.笛卡尔积笛卡尔积是域上一种集合的运算,有时构成笛卡尔积的域可能是无限集,这时笛卡尔积也是无限集。3.关系在笛卡尔积中取出一个子集,可以构成关系。若关系中的每个元素是关系中的元组,通常用T来表示,若关系中的某一个属性组的值能唯一地标识一个元组...原创 2016-03-02 19:00:15 · 624 阅读 · 0 评论 -
C++自制Redis 数据库 (十五)【重构】数据库学习(三)
关系型数据库的设计概要虽然我们是做非关系型数据库,我们也必须了解下,关系型数据库的设计,思想应当有值的借鉴的地方。数据库设计步骤1.需求分析首先收集资料,对资料进行分析整理,画出数据流图,建立数据字典,形成文档资料。2.概念结构设计综合信息,形成一个独立具体的概念模型。该模型需要能真实,充分反映客观现实世界。3.逻辑结构设计将抽象的概念结构转换为某个数据库管理...原创 2016-03-03 14:35:42 · 709 阅读 · 0 评论 -
C++自制Redis 数据库 (十五)【重构】数据库学习(四)
前言这是关系型数据库相关学习的最后一篇小结了,怎么说呢,关系型数据库其实还是一个很大的模块,我学习关系型数据的目的是了解关系型数据库的构成是怎样的,它有什么特性,因为时间关系我也不可能面面俱到。毕竟时间有限,我这次也没有看太多的关于关系型数据库的书和资料,这里不对关系型数据库置评。《深入浅出mysql开发》这是网易的一个团队写的关于mysql的书,听说不错,有志向研究关系型数据库,或数据库的小...原创 2016-03-04 17:37:20 · 586 阅读 · 0 评论 -
分布式原理与实战(四) 以FDB为例之同步化
分布式中最为重要的一个工作就是同步化,分布式是对于多台机器的。那么同步化一定是一个重要的问题,我们先在就以问题结合我们的项目详细谈谈分布式的同步化问题。谈到同步化问题,我们就必须从时钟上谈起,分布式系统中,是没有“全局时钟”这个概念的,或许我们就不应该假设有“同步时钟”这个东西存在。那我们如何讨论同步化问题呢?其实早在计算机出现之前,我们人类就考虑过时钟同步的问题。“闰秒”这就是一个非常...原创 2016-09-24 15:24:58 · 607 阅读 · 0 评论 -
分布式原理与实战(三) 以FDB为例之通信
Q : 很多协议都采用分层模型?为什么?答:协议的每一层都必须和其它层相独立。从第k+1层传送至第k层的数据同时包含了报头和数据,但是第k层协议不能对它们进行辨别。如果使用单个大的报头来包含所有信息的话将会破坏透明性,使得一个协议层的变动会影响到其它层,这显然不是我们所希望的。FDB作为应用程序,并不需要考虑协议上的东西,但是我们需要考虑消息格式。Q:为什么传数层往往不适合构建分...原创 2016-09-09 22:18:34 · 739 阅读 · 0 评论 -
分布式原理与实战(二) ---以FirstDB为例之体系结构
在上一篇中,我们主要阐述了分布式系统的几个关键问题,我们也结合FDB做了一些实例化的东西,接着我们来考虑下分布式的体系结构相关的东西,还是以我们的FDB作为实例化的说明。FDB的地址:https://github.com/zmr961006/FirstDBQ:如果客户和服务器相隔很远,我们可以看到网络延时将主导性能,如何处理这个问题?答:首先,我们必须保证我们的请求是幂等的,保证相...原创 2016-09-09 19:01:07 · 737 阅读 · 0 评论 -
分布式原理---以FirstDB为例(一)
分布式是一个非常复杂且广泛的概念,几乎没有办法系统的学习,因为每一种办法都难以在所有的场景下通用,所以我打算从问题的角度来记录一些关于分布式的知识原理。并且我想要以我们之前设计的一个分布式键值存储系统为例,来说明一些分布式的东西。FirstDB 项目地址:https://github.com/zmr961006/FirstDBQ:中间件在分布式系统中扮演者什么角色?答:Middle...原创 2016-09-09 16:37:03 · 574 阅读 · 0 评论 -
C++ 自制Redis数据库(十三) 持久化AOF日志模块测试完毕
持久化AOF部分测试完毕废话不多说,一般写日志,很多人就直接write 了,但是效率很低,这里就不详细解释了。我AOF模块的设计我是在为我的数据库写这个日志模块所以我需要考虑如下几个指标:1.并发量不敢说很巨大。但是多个线程同时需要写日志这种可能性还是有的,一个连接给一个线程池中的线程干活,当业务很多的时候,好几个线程同时需要写日志是很可能的,所以需要来考虑。原创 2016-02-24 21:33:54 · 756 阅读 · 0 评论 -
C++自制Redis数据库(七) 决战架构设计--从数据的角度贯通始终
前言今天都大年初一了,项目的设计也该结束了,我一直相信着只有设计的时候理清思路,把设计的每一个角度都理清这个项目就成功了一大半,首先我不可能使用不可能达到的技术,其次当设计完成,每一个环节思路都清晰的时候,我想就剩下编码了,其实编码是最简单的事情,因为编码的时候只需要对语言的熟练,都是局部的编程,很容易调试代码,即使错了重写函数就好了,但是如果设计上出现重大失误,我指的是和设计目标的背离,这将...原创 2016-02-08 17:14:40 · 565 阅读 · 0 评论