内存数据库_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 内存数据库 >>列表
一、Jedis分布式(Sharding/shared一致性哈希)我们知道Memcached是完全基于分布式的集群,而Redis是Master-Slave的模式,如果想把Redis做成集群模式,其实无外乎就是多做几套Master-Slave,每套Master-Slave完成各自的容灾处理,通过Client工具,完成一致性哈希。(PS:Memcached是在Server端完成Sharding,Redis只能依靠各个Client做Sharding。但比较开心的是从3.0的正式版开始... 查看全文
一、什么叫Redis?Redis的全称是:RemoteDictionaryServer二、Redis的基本介绍:redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能... 查看全文
在开始本篇之前,可先了解上一篇redis的基本知识(一、Java内存数据库实践之深入浅出Redis-Redis介绍)http://josh-persistence.iteye.com/blog/2077321一、Linux下的安装当前版本最新是2.8.9,具有cluster功能的3.0版本仍是beta版。除了cluster的功能外,3.0版和2.8.9版没有太大的变化。下载,解压和安装:$wgethttp://download.redis.io/releases/redis-2.8.9.tar... 查看全文
· 简易内存数据库(六)CREATE发布时间:2011-01-08
前面CREATE完成。当中有一个细节我想你应该已经注意到了。就是当读到float(4)或者char(100)时,我们知道这个字符串中需要保存2个内容。一个是column类型,一个是column长度。我就用了getColumnTypeLength(buffer,&column->type,&column->length);这个函数,希望把buffer中读到的这两个内容,分别保存到column->type和column->length中。显而易见... 查看全文
· 简易内存数据库(五)CREATE发布时间:2011-01-08
接下来就是一行行读column了。因为column有多个,所以我们需要写循环语句while(...)循环语句的结束条件是什么呢,读到什么时候column就算读完了呢?当然是要么文件结束,要么读到‘)’啦。所以我们可以开头这样写fscanf(fp,"%s",buffer);while(!feof(fp)&&strcmp(buffer,")")){while循环中每读到一次column就创建一个column对象。填充好。而且column结构设计的时候我用链表结构... 查看全文
还有一件事情我需要重申一下:我们在保存一组数据时会使用以下三种方式:静态数组,动态数组和动态链表1)当我们预先知道一组数据的长度,或者是最大长度的时候,可以用静态数组,在程序编译的时候就确定了保存这一组数据的内存大小。用int作为基础类型,代码如下:intarray[MAX_COUNT];2)当我们在程序运行时才能知道一组数据的长度,或者是最大长度的时候,可以用动态数组,在程序运行时一一次性分配一整块内存。用int作为基础类型,代码如下://申明int*array;//实现array=... 查看全文
· 简易内存数据库(三)CREATE发布时间:2011-01-08
那我们来试试CREATE吧。CREATE语句可以建立一个表头,表头的信息包括表的名字,表所包含的列。我打算用这样一个结构来保存表的信息structTable{charname[50];//表的名字Column*columns;//表的列intcolumnCount;//列的个数};表名我用的是普通数组。也就是说,在这个系统中,表名的长度不能超过49个字节。列用的是指针。我将要用链表形式保存所有列的信息。额外用一个变量保存列的个数。列的结构如下:structColumn{charname[50]... 查看全文
· 简易内?数据库(七)CREATE发布时间:2011-01-08
这是CREATE最后一个需要实现的函数了/**描述:4)或者100)把括号前的数字返回*参数:string--整体字符串*返回:返回解析后的数字*/intgetLength(char*string){//找到')'的位置char*end=string;while(*end!=')')end++;//把')赋值成'\0'*end='\0';//把字符串转成数字returnatoi(string);}有个函数是atoi,可以把字符串转成数字。比如atoi("100")就返回100这个数字... 查看全文
· 简易内存数据库(四)CREATE发布时间:2011-01-08
因为整个程序都是围绕Table的,为了方便起见,我申明了一个全局变量Tablet;我们一个单词一个单词的读取文件内容。然后一个单词一个单词的进行比较。临时的内容保存在charbuffeer[100]中。有时候需要的内容就直接保存在相应的table内存块中。创建代码如下/**描述:根据给定文件,在内存里填充数据库格式*参数:已经打开的文件*返回:返回0说明创建失败。返回1则创建成功*/intcreateTable(FILE*fp){//先把要填充的内容清空memset(&t,0... 查看全文
· 简易内存数据库(一)总述发布时间:2011-01-08
项目的要求是:需要接受create,insert,select,update,delete等语句,在内存中建立一个数据库表。并对这个表进行相应的操作。动手之前有一些提示。不管我们处理哪一种语句,要做的都是2件事:1)解析相关的语句。2)把语句所表述的内容保存在内存中。我先解释一下这两点:首先,你的程序是运行在内存中,程序所要处理的内容当然需要预先保存在内存中,这样你才可以进行内容操作。保存在内存中,换句话说你可以申明变量,把文件中所表述的内容赋值到变量中。那么这个或这些变量应该是什么类型的呢... 查看全文