一、什么是NoSQL数据库
NoSQL:相对之前流行的关系型数据库的而言,NoSQL数据库并不实现关系数据模型。当然,这种数据库也有SQL检索语言的支持,可以通过SQL语句进行检索数据。只不过,不像关系型数据库那样,检索数据只依赖数据库检索语言。所以,NoSQL 可以理解为"Not Only SQL",就是说,NoSQL数据库比SQL数据库具有更加宽泛的定义。
二、NoSQL和普通的关系型数据的区别:
NoSQL数据库并不要求在人们先定义好数据库结构,然后再存储数据。在Membase中,在客户端定义好一个相关联的数组,里面的元素是KEY/VALUE(即:键值对),这里,键:是任意有效的字符串序列,用于以后查询的条件;值:可以是任意的对象(数字,字符串,序列化的对象等等),反正最后都会转换成二进制的blob数据。如果要提高它的I/O吞吐量和存储能力,只需要加若干台普通的PC机就可以了,无需进行软件和硬件的修改设置。相对关系型数据库来说,需要提高服务器的吞吐量和存储,只能在某台服务器上提高它的内存和CPU,当然这台服务器也得容得下这些硬件的升级。
关系型数据库要想存储数据,首先得定义好数据库的关系结构,可能以后还得做些修改,比如:增加一些索引,添加外键或者增加删除某些字段等。关系型数据库维护的是一些表和记录,每一条记录有若干个属性(即:字段)。每一条记录,这些字段都是一致的。关系表可能会在表之间形成外键参考。
三、数据维护
Membase是一种基于Memcached优化过的分布式的KEY/VALUE(NoSQL)数据库管理系统,在WEB应用后端作为数据存储。这些应用有如下一些特征:同时跟大量用户交互,并且实时地建立,存储,检索,集合,维护和表现数据。如果有这样的需求(例如当前流行的SNS网站:facebook和twitter),那么Membase就可以低延迟(毫秒级以下)、高效率的同时处理大量的读写操作。Membase是通过横向扩展,从一台到上千台的Membase服务器集群,来达到这样的目的的。
为了适应数据库的大容量的数据或数据访问量的增长,Membase采用分布式,跨单个服务器的I / O负载共同构成一个Membase集群。应用访问一个Membase集群中的数据,客户端可以使用SQL语句或者特定的框架类库。对于一个给定的数据操作,客户端类库能够迅速和直接让集群中的成员去完成这些操作,客户端不用管,这是一个非常智能的数据库集群。
四、安装和管理
是Membase的官方网站,源码已经托管到了GitHub上,和Memcached一样,支持*NIX,MAC和WIN*操作系统。
1 动态扩展:Membase支持动态的横向扩展,只需要添加一台Membase服务器到网络中,并把它加入某个集群,就完成了扩展,对整个系统没有影响,唯一有影响的就是整个集群更强大了,处理能力更强了。
2 集群管理
Membase服务器内建了集群管理工具,只需要连接到某台服务器上,就可以进行管理。管理系统提供了REST(抽象状态传输的缩写,目前很火的一个词!!)接口。
3 状态监控
客户端类库和WEB应用能够利用管理系统提供的REST接口工具,确定某个成员的健康状态
4 这个接口还能提供动态的从集群中添加和删除某个成员服务器,而前端的应用,没有任何影响。
5 节点:
一台运行Membase的服务器就是一个节点。服务器可以运行在EC2、VMWare或者特制的硬件上面。
6 集群:
是一个或者多个Membase服务器组成的集合。集群是基础,通过增加整个系统的存储能力、性能和系统的可用性。
7 Membase集群管理
集群管理系统是Membase服务器的内建组建,运行在每一台Membase服务器上,提供下面的服务:
A -- 集群系统管理
B -- 服务器节点管理(启动和关闭)
C -- 节点监视
D -- 状态收集和汇总
E -- 实时日志
F -- 安全管理等等
管理员可以通过8091端口去访问以上提供的服务;
应用可以通过11211和11210两个端口去进行数据检索;
在集群内部,节点之间也可以相互通讯。
8 参数配置
1)内存配额
为集群中的第一个新成员设置好内存配额后,接下来新加的成员都会继承这一个配置。设置的大小应该小于或者等于该成员的物理内存的80%(比如成员的内存是4GB,那么应该配置为3.2GB比较合适)。其他新加的成员会继承这个配置。如果新加的第二个成员的物理内存小于它所继承的配额(即:3.2GB)的1.25倍,那么就不能加入该集群。所以,建议将成员服务器的内存大小设置为统一的4GB或者8GB,这样就不用担心无法加入集群了。
2)磁盘无配额
只需要系统管理人员监视好磁盘的容量就可以了,如果不够,加硬盘,或者删除没有用的数据(谨慎!!)。
3)内存配额和磁盘的使用
由Membase自行使用,以达到最大的利用率。
4)数据桶配额
每一个成员的内存配额大小就当作一个数据桶来使用。
数据桶为Membase提供了持久性,可复制性和负载均衡性。
(未完,待续。。。)
阅读(1551) | 评论(0) | 转发(0) |