redis非关系型数据库
redis是一款高性能的NOSQL系列的非关系型数据库
一、nosql概念及介绍
NOSQL: not only sql,一项全新的数据库理念,泛指非关系型的数据库。传统的关系型数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网页已经显示的力不从心,暴露了很多难以克服的问题,而非关系型的数据库子由于其本身的特点得到了非常迅速的发展。nosql数据库的产生就是为了解决大规模数据集合多重数据类型带来的挑战,尤其是大数据引用难题。
1.nosql和关系型数据库的比较
关系型数据库和非关系型数据库并不是对立的关系,而是优势互补,剔除各自的劣势!
a.优点
- 成本低:开源,易部署
- 查询快:nosql将数据存储在缓存汇总,查询速度快
- 存储格式丰富:key:value键值对。文档形式,图片形式等,可以存储基础类型以及对象或者集合等各种格式,而数据库只支持基础格式
- 扩展性好:关系型数据库类似join这样的多表查新机制导致扩展艰难!
b.缺点
- 目前维护工具和相关资料有限,新技术,不能与关系型数据库10几年的技术同日而语
- 不提供sql语句工业标准,有一定的学习成本。
- 不提供关系型数据库对事物的处理。
2.非关系型数据库的优势
- 性能高:nosql基于键值对,不像关系型数据库要经过sql层的解析。
- 可扩展性高: 数据之间没有耦合性
3.关系型数据库的优势:
- 复杂查询可以用sql语句方便在一个表以及多个表之间做非常复杂的数据查询。
- 事物支持是的对于安全性能很高的数据访问要求得以实现。
4.总结:
- 关系型数据库与非关系型数据库优势互补。
- 一般会将数据存储在关系型数据库中,在nosql数据库中备份存储关系型数据库的数据。
二、主流的nosql产品
1.键值对(key-value)存储数据库
- 相关产品:Tokyo Cabinet/Tyrant、Redis、Voldemort(伏地魔)、Berkeley DB
- 典型应用:内容缓存,主要用于处理大量数据的高访问负载。
- 数据模型:一系列键值对
- 优势:快速查询
- 劣势:存储的数据缺少结构化
2.列存储数据库
- 相关产品:Cassandra、HBase、Riak
- 典型应用:分布式的文件系统
- 数据模型:以列簇式存储,将同一列数据存在一起
- 优势:查询速度快,可扩展性强,更容易进行分布式扩展
- 劣势:功能相对局限
3.文档性数据库
- 相关产品:CouchDB、MongoDB
- 典型应用:Web应用(与key-Value类似,Value是结构化的)
- 数据模型:一系列键值对
- 优势:数据结构要求不严格
- 劣势:查询性能不高,而且缺乏统一的查询语法
4.图形(Graph)数据库
并不是图形化,而是利用图这种数据结构实现的数据库
- 相关数据库:Neo4J、InfoGrid、Infinite Graph
- 典型应用:社交网络
- 优势:利用图结构相关算法
- 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案!