NoSQL产品列表
•
Memcache
•
Redis
•
Mongdb
•
OracleTimesTen
•
HBase
•
Memcache
Memcache是什么
•
Memcache
是个高性能的基于内存的
分布式
缓存系统,
Memcache
的分布式是基于客户端的
Key
的
hash
来做均衡,是个伪分布式的系统。
•
Memcache
有
2
个组件,一个客户端(
java
),一个服务器端
c
编写。
Memcache的特点
•
基于内存(但是重启了后,数据丢失)。
•
提供简单的
get,set
方法。
•
缓存对象只能小于
1M
。
•
安装,使用比较简单。
Memcache的使用场景
中小型网站应用中来存放非可靠性的只读数据。例如
•
存放用户的信息。
•
网站的计数。
•
数据库
DAO
前的行记录缓存。
•
全局的代码参数。
•
Redis
Redis是什么(官网:http://www.redis.cn/)
•
Redis
是一个 用
c
语言写的类似
Memcache
的
key-value
的存储系统,它比
Memcache
提供了更多的
API
接口和更好的并发性能,可以支持
10
万并发的读写,建议用
Redis
代替
Memcahe
。
•
Redis
是基于内存的,因此部署
Redis
的机器对于内存是非常有高的要求的,
Redis
是会把数据实时写到内存中,再定时同步到文件。
Redis能干嘛
•
Redis
可以当作数据库来用,但是有缺陷,在可靠性上,没有
Oracle
关系型数据库来的稳定。
•
可以作为持久层的
Cache
层。可以缓存下面的数据库结构。
1.
计数
2.
排行榜样,最新浏览的数据
3.
队列(订阅关系)
Redis特点
•
完全居于内存,数据实时的读写内存,定时闪回到文件中
•
读写速度快
•
支持高并发量,官方宣传支持
10
万级别的并发读写
•
支持机器重启后的,重新加载模式,不会掉数据
Redis适用场景
•
在非可靠数据存储中,可以作为数据持久层或者是数据缓存区。
•
对于读写压力比较大,实时性要求比较高的场景下。
•
关系型数据库不能胜任的模型下的场景。
例如 在
SNS
中订阅关系
•
Mongdb
Mongdb是什么
•
Mongodb
是一个底层用
C++
语言编写的一个分布式文件存储系统,可以简单的理解成一个类
Mysql
数据库的分布式文件系统。
•
Mongodb
底层是用
C++
语言编写的。
•
一个分布式的文件存储系统
Mongdb能干嘛
•
作为
MySQL
的代替品,存储海量的相对非可靠的数据,
例如大众点评的评论.http://www.dianping.com
Mongdb特点
•
天生有分布式的优点(最强的一个优点)。
•
海量文件,文本类型数据的存储。
•
性能卓越的海量数据的存储情况下的读写性能。
Mongodb适用场景
•MySQL的代替品或者是半代替品(对复杂查询要求不高的情况下)
•读压力比写的压力大的情况下的文件和文本类型的数据,并且数据量比较大
•
OracleTimesTen
OracleTimesTen是什么
•
Oracle
TimesTen
是
HP
实验室人员在
1992
年做的一个内存数据库产品,后来惠普实验室的人成立了
TimesTen
公司,
Oracle
在
2005
年的时候把
TimesTen
收购了的。
OracleTimesTen特点
•
及时响应 完全居于内存,对于
CPU,
磁盘的
IO
压力非常低。
•
支持事物
•
兼容标准
SQL
•
高性能
•
高可用性
•主从模式
TT的2个高级特性
•
复制
•
负载均衡
OracleTimesTen适用场景
•
实时计费系统
(
移动,联通
)
•
基金,股票实时撮合交易系统
•
网站
Cache
层或者是持久层
CCTV http://www.cntv.cn/把用户的信息存储在TT中而不是关系数据库中
OracleTimesTen特点
•
完全居于内存,对于
CPU,
磁盘的
IO
压力非常低。
•
支持事物
•
兼容标准
SQL
•HBase
HBase是什么
•
Hbase
是个分布式的面向列的非结构化数据库,是
Hadoop
的子项目。
•
HBase
是
Google Bigtable
的开源实现。
•
HBase
利用
Hadoop HDFS
作为其文件存储系统。
•
HBase
利用
Hadoop MapReduce
来处理
HBase
中的海量数据。
•
HBase
利用
Zookeeper
来管理。
HBase能干嘛
•
作为存储层来存储非可靠性的海量数据,如日志,评论,访问记录
HBase特点
•
高可靠性
•
高效性
•
面向列
•
可伸缩
•
可在廉价
PC Server
搭建大规模结构化存储集群
HBase适用场景
•
数据量巨大,千万或者是亿级别以上。
•
实时性要求不高,比如离线计算。
性能评测结果