开发中经常遇到是否使用NOSQL的选择。抉择机制如下:
规划需求
-
首先统计你目前的应用规模,包括单位时间存取次数,记录条数,记录占用硬盘空间大小。并基于你的业务在半年以内的增长速度,找到系统的瓶颈是在高并发读写上还是在海量数据的高效存储和访问上。例如每秒上万次读写请求,上亿条记录的表,上T的多媒体数据。
-
分析你的业务是否对事务一致性,读写实时性,复杂查询有需求。如果某些数据有这方面需求能否将其拆分成有需求和没需求的两块。
-
在应用NOSQL之前,想想系统架构设计上能否进行优化,例如读写分离,逻辑切分,数据库分片。利用纯内存key-value数据库来进行告诉缓存。从头应用Nosql对于研发和运维的技术要求很高,你的业务能否承担长时间不推出新功能以及各种运维事故的代价。
选择方案
Key-Value 存储: MemCached,TokyoTyrant,HandleSocket,MemBase,Redis
- 其中MemCached 是没有持久存储的,可以用来做高速缓存。基本上是使用最广的NOSQL方案。
- TokyoTyrant 是有持久存储的,Qzone社交游戏和日本最大的SNS网站Mixi.jp都使用.
- HandleSocket 可以同MySQL无缝集成,是现有方案升级的一个好方案
- Membase 被Zynga 使用来做社交游戏的存储。
- Redis实际上存储的是结构化数据,功能相对较多,可以针对特定类型数据进行操作,使用者较多,有新浪微博,飞信。
Key-文档存储: CouchDB,MongoDB,Riak
- 存储结构化的文档,可以用来做比较灵活的应用。
- 淘宝,CraigList,Foursquare,大众点评在使用MongoDB.
- GitHub,MochiMedia 使用Riak
BigTable类: HBase,Cassandra,Voldemort
- 主要用在海量数据处理和存储
- Facebook的消息数据库使用HBase
- 优酷的数据分析使用HBase
- Linkedin使用Voldemort
- Twitter,Digg.com 使用Cassandra.
国内开源的主要有豆瓣的BeansDB和淘宝的OceanBase,应用案例不多。
实际操作
然后根据自己的业务类型分析,以及性能指标,迁移难易程度来选择适合自己的NoSQL
方案。在应用过程中不要盲目相信网上的评测,还是要自己进行测试,并且灌入自己的
真实数据进行实际操作,才能得到可靠的结果。
然后在架构设计中考虑好如何动态扩展,灾难恢复和数据备份如何实现,现有系统如何
迁移。
相关推荐
nosql分布式数据库期末考试题.docx
nosql分布式数据库期末考试题.pdf
如何选择适用企业的NoSQL解决方案 Highly Coupled (clustered): refers typically to a cluster of machines that closely work together, running a shared process in parallel. The task is subdivided in parts ...
《大数据挑战与NoSQL数据库技术》... 《大数据挑战与NoSQL数据库技术》对大数据时代面临的挑战,以及NoSQL数据库的基本知识做了清晰的阐述,有助于读者整理思路,了解需求,并更有针对性、有选择地深入学习相关知识。
3.对于4.X及以下版本,可每30天清理一次,重置试用期限,对于5.X以上版本,官方开始增加了网络验证,每次运行后,会同步服务端记录的试用日期回本地,需要每次试用完毕后运行清理一次,或者选择端外网试用;...
介绍:电子书如何选择NoSQL数据库,中文文字版
第14章 选择NoSQL 230 14.1 比较NoSQL产品 230 14.1.1 可扩展性 230 14.1.2 事务完整性和一致性 233 14.1.3 数据模型 233 14.1.4 查询支持 235 14.1.5 接口可用性 236 14.2 性能测试 237 14.2.1 50/50的读和...
这里有很多理由来选择Cassandra用于您的网站。和其他数据库比较,有三个突出特点: 模式灵活 :使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人...
如何选择NoSQL数据库.rar
NoSQL,你应该会马上发现你有很多种选择。 NoSQL系统舍弃了许了传统 关系型数据库的方便之处,而把一些通常由关系型数据库本身来完成的任务交给了应用层来完 成。这需要开发人员更深入的去了解存储系统的架构和具体...
在2013年,NoSQL数据库的种类达到了150多个,并且一直在增长,多种多样的NoSQL数据库令人难以做出选择。更糟的是,鼓吹自己产品的海量广告宣传材料令人难以以理解该产品是否适合用户的需要。 为了向客户的项目提供...
《NoSQL精粹》为考虑是否可以使用和如何使用NoSQL数据库的企业提供了可靠的决策依据。它由世界级软件开发大师和软件开发“教父”Martin Fowler与Jolt生产效率大奖图书...第15章提供了选择数据库时可以参考的一些建议。
MongoDB等NoSQL数据库背后蕴涵的哲学是不同的平台应该使用不同类型的数据库,MongoDB通过降低一些特性来达到性能的提高,这在很多大型站点中是可行的。因为MongoDB是非原子性的,所以如果如果应用需要事务,还是需要...
这意味着软件架构师更应该在项目开始时就选择好一个适合的 NoSQL数据库。针对这种情况,这里对 Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、Neo4j和HBase进行了比较: (编注1:NoSQL:是一项全新的...
如何选择NoSQL数据库[参照].pdf
算法的选择 Quorum NRW Vector clock Virtual node gossip Gossip (State Transfer Model) Gossip (Operation Transfer Model) Merkle tree Paxos 背景 DHT Map Reduce Execution Handling Deletes 存储实现 节点...
绝大多数的NoSQL产品都是基于大内存和高性能随机读写的(比如具有更高性能的固态硬盘阵列),一般的小型企业在选择NoSQL时一定要慎重!不要为了NoSQL而NoSQL,可能会导致花了冤枉钱又耽搁了项目进程。 NoSQL不是...
NoSQL系列:选择合适的数据库 为什么使用NoSQL数据库? 1、阻抗失衡 关系模型和内存中的数据结构不匹配 采用更为方便的数据交互方式提升开发效率 2、待处理的数据量很大 数据量超过关系型数据库的...
比较好的Nosql选择,适合初学者,比较实惠。
互联网的数据选择:NoSQL还是No SQL.pdf