查看: 11415|回复: 30

【有奖讨论】NoSQL开发与实战

[复制链接]
论坛徽章:
24
技术图书徽章
日期:2013-08-16 14:31:52问答徽章
日期:2013-11-04 08:53:14目光如炬
日期:2013-12-23 06:00:11目光如炬
日期:2013-12-30 06:00:11明星写手
日期:2014-02-22 06:00:12马上有钱
日期:2014-03-31 14:09:05沸羊羊
日期:2015-05-20 12:42:59秀才
日期:2015-06-24 13:05:36秀才
日期:2015-07-13 09:48:14
1#
发表于 2012-11-13 09:52 | 只看该作者

使用道具 举报

回复
论坛徽章:
12
奥运会纪念徽章:马术
日期:2012-08-14 18:12:40ITPUB社区12周年站庆徽章
日期:2013-09-13 11:28:50ITPUB社区千里马徽章
日期:2013-08-22 09:58:03紫蛋头
日期:2013-01-10 11:05:26咸鸭蛋
日期:2013-01-04 10:58:46复活蛋
日期:2012-12-11 16:53:14ITPUB 11周年纪念徽章
日期:2012-10-31 14:48:00奥运会纪念徽章:体操
日期:2012-08-14 18:13:12奥运会纪念徽章:自行车
日期:2012-08-14 18:13:04奥运会纪念徽章:羽毛球
日期:2012-08-14 18:13:04
2#
发表于 2012-11-13 11:09 | 只看该作者
板凳

使用道具 举报

回复
论坛徽章:
14
2011新春纪念徽章
日期:2011-04-02 17:01:062013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2012-12-06 19:27:46ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42紫蛋头
日期:2012-03-13 16:37:18灰彻蛋
日期:2012-02-06 14:20:122012新春纪念徽章
日期:2012-01-04 11:57:56灰彻蛋
日期:2011-12-26 14:20:13茶鸡蛋
日期:2011-12-20 15:00:13
3#
发表于 2012-11-13 11:31 | 只看该作者
haddop mongo redis,都有用到,nosql结合关系数据库,很明显的趋势

使用道具 举报

回复
论坛徽章:
14
蜘蛛蛋
日期:2012-03-07 10:09:01马上有对象
日期:2014-02-18 16:44:082014年新春福章
日期:2014-02-18 16:44:08生肖徽章2007版:兔
日期:2012-03-07 10:15:11复活蛋
日期:2012-03-07 10:09:01蛋疼蛋
日期:2012-03-07 10:09:01迷宫蛋
日期:2012-03-07 10:09:01灰彻蛋
日期:2012-03-07 10:09:01紫蛋头
日期:2012-03-07 10:09:01鲜花蛋
日期:2012-03-07 10:09:01
4#
发表于 2012-11-13 13:31 | 只看该作者
工作中没有用到nosql,还是传统的关系数据库。
之前一直纠结要不要从数据库开发转向数据库管理,正好今天做了决定。先从数据库开发深度发展,做到精通oracle数据库开发,还要学习DB2、sqlserver、mysql数据库,扩展知识面。今后也会拓展视野,了解nosql。
在数据库开发方向做出成就。会继续关注这个帖子,了解nosql的业界发展。

使用道具 举报

回复
论坛徽章:
11
迷宫蛋
日期:2011-10-24 10:43:14蛋疼蛋
日期:2013-01-10 11:03:47奥运纪念徽章
日期:2012-12-06 09:21:40ITPUB 11周年纪念徽章
日期:2012-10-31 14:48:00ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:48ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:422012新春纪念徽章
日期:2012-01-04 11:57:13茶鸡蛋
日期:2011-12-06 16:25:55ITPUB十周年纪念徽章
日期:2011-11-01 16:25:51ITPUB官方微博粉丝徽章
日期:2011-10-31 10:21:02
5#
发表于 2012-11-13 13:40 | 只看该作者
顶起

使用道具 举报

回复
论坛徽章:
0
6#
发表于 2012-11-13 21:47 | 只看该作者
本帖最后由 yuwenguang 于 2012-11-13 21:58 编辑

对于NOSQL比较感兴趣,之前一直从事关系型数据的相关应用,主要使用,MSSQL,Mysql和Oracle这3种数据库,在传统的开发中,使用ADO.net直接操作数据库,包括常用的sql语句和存储过程等。随着技术的发展,基于linq的使用和EF的使用,慢慢对数据库操作进行了封装。于此同时数据库方面也在向非关系型数据库进行迈进,海量数据,高并发,性能优化,在时间的推移中,越来越关键。日积月累的数据终有极限的时候,在讨论高并发海量的数据时,NOSQL一出惊人,以上目标则是其的初衷。NOSQL能否取代关系型数据库很期待。

目前主要使用Mongodb,安装后使用起来很方便,能够快速上手,它的结构太灵活,对象化存储,可以说像json,也支持列的动态扩充。
数据量可以说无限海量,只要有硬盘就可以。
对于NoSQL,并无实际项目的使用经验,仅仅进行这前期的研究。

目前的问题在于:
如何让传统开发人员迅速熟练NOSQL,并进行使用;
另外缺少成熟的可供参考的案例用于学习;
在大型项目中的应用不多,对其是否能解决瓶颈问题很期待;
书籍资料不多,也一定程度阻碍其发展。

比较看好的未来nosql之星为:Mongodb。使用过,觉得挺不错,研究成型后可以考虑后继项目使用。

期待楼主多给一些相关讲解。持续关注中。

使用道具 举报

回复
论坛徽章:
5
ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42蜘蛛蛋
日期:2012-12-22 17:39:16茶鸡蛋
日期:2013-01-09 10:59:002013年新春福章
日期:2013-04-08 17:42:48
7#
发表于 2012-11-13 23:30 | 只看该作者
1.在做NoSQL技术选型的时候,谈谈个人的想法。
首先要选择比较成熟的方案,例如MongoDB Redis 这些耳熟能详的,大互联网公司都在用,更有保障性,开源社区支持也非常完善。原因:国内大部分的互联网公司,还不具备对某个Nosql数据库进行二次开发或者扩展的能力,也不具备这个条件,更不可能短期内公司团队自己开发。使用比较广泛的NoSql,功能和社区技术支持相对完善,拥有更多的学习资料,公司技术团队更容易学习和掌握。
其次是要合适自身业务场景和基础架构的。每个Nosql产品都会有其自身的优缺点,选择的时候也需要考虑很多问题:假设 MongoDB 是不能进行持久化存储的,而且在命中率不高的情况下必须去读写后端的关系型数据库,这点能否接受吗?假设Redis 数据库的稳定版本仅仅支持跑在Cent OS 5.5以上,而你公司的服务器全部是windows的,这个我想你多半会放弃Redis了。再比如:Memecahed 默认是不支持数据冗余的,也就是说发生单点故障的情况下,就无法保证数据完整性。这点我们的系统能接受吗?我们是否有能力将其扩展,让他支持数据冗余,防止单点故障呢?

2.关于使用了哪些,遇到了哪些问题。
要说最早使用的NoSql产品,要属Memcached。严格来讲,Memcached只是一套基于K/V存储的分布式缓存系统,并算不上Nosql产品(这得看对nosql的定义了,业内也有很多争议)。至于后来衍生出来的memcachedb(一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景),Membase等,应该算的上真正意义上的Nosql了。

在使用Memcached作为辅助存储的时候,遇到过一些很棘手的问题。例如:命中率不高,被迫读取后端的数据库。维护和扩容的成本比较高,后期才启用监控和邮件报警机制。还有很要命的一点就是,当时公司全部使用的是windows服务器授权,windows平台缺乏良好的Nosql支持(或许是团队自身技术有限),导致在性能和高可用方面都大打折扣。为了解决单点故障问题,不惜牺牲了一定的性能。因为当时比较高效、成熟的冗余方案,只能支持Linux服务器,而我们短期内也无法开发出比较完善的方案。
后期在业余项目中,使用了更“高级”的Redis,同样遇到过一些困难。首先就是快速熟悉,掌握Redis,这就考验个人学习能力了。在使用过程中,做读写分离的时候(Master/Slave主从复制,和使用Mysql一样的思路),复制过程中,遇到性能瓶颈。经过研究发现,由于Redis使用单线程服务,如果Master快照文件比较大,这样以来传输则需要花费较长时间,还有就是,Master/Slave服务器最好在同一局域网内,避免网络延时。还有就是比较常见的“单点故障”的问题,虽然说主从复制的方式,也可以解决单点故障,但总觉得这不算是高可用的最佳手段。之前在Memcachedb中可以使用 Proxy的方式,实现数据冗余,来避免“单点故障”。Redis中同样也有解决的思路,这里不做太多介绍,有需要的朋友自己去找相关资料研究。
还有点值得说的就是,凡是涉及到“持久化存储到硬盘”的,就必读会有磁盘I/O操作,当然就会有一定的性能牺牲。好在Nosql抛开了传统关系型数据库中的默认事务支持和一系列的复杂的检查等。



3.如果真要我选择,我觉得Redis将会是未来nosql之星。出于之前对于Memcached的使用喜好,感觉Redis更像一个加强版的Memcached。
但是在网络I/O模型,内存管理,可持久化,存储方式(list,set,sorted set,hash等众多数据结构)等方面都有改进,这里就不一一介绍了。


时间有限,说了这么多  希望对大家有帮助  也建议朋友们多去尝试  多去学习

使用道具 举报

回复
论坛徽章:
82
2013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:排球
日期:2013-04-11 18:16:37奥运会纪念徽章:曲棍球
日期:2013-04-11 18:16:47奥运会纪念徽章:垒球
日期:2013-04-27 15:03:48奥运会纪念徽章:跳水
日期:2013-04-27 15:04:27奥运会纪念徽章:举重
日期:2013-04-27 15:04:27奥运会纪念徽章:田径
日期:2013-04-27 15:04:27奥运会纪念徽章:赛艇
日期:2013-04-27 15:04:27奥运会纪念徽章:垒球
日期:2013-04-27 15:04:27咸鸭蛋
日期:2013-03-24 21:25:32
8#
发表于 2012-11-14 15:09 | 只看该作者
NoSQL接触不多,找时间拎本书看看。

使用道具 举报

回复
论坛徽章:
5
ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42蜘蛛蛋
日期:2012-12-22 17:39:16茶鸡蛋
日期:2013-01-09 10:59:002013年新春福章
日期:2013-04-08 17:42:48
9#
发表于 2012-11-14 16:17 | 只看该作者
做传统软件行业的,例如ERP、金融系统等等。应该使用的不多。但是对于大规模的互联网,Nosql真是很好的手段。在开源世界里(尤其是主流的LAMP架构),Nosql是对Mysql很好的补充。通常环境下,建议一起使用,发挥各自的优势。我一直觉得,Nosql = Not only sql   而绝非
“抛弃传统关系型数据库”。

使用道具 举报

回复
论坛徽章:
5
ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42蜘蛛蛋
日期:2012-12-22 17:39:16茶鸡蛋
日期:2013-01-09 10:59:002013年新春福章
日期:2013-04-08 17:42:48
10#
发表于 2012-11-14 16:28 | 只看该作者
对比那些金融系统,电信级的BOSS系统而言,其实互联网系统(网站),对于传统关系型数据库中“事务”的依赖性相对较低(当然,电商可能是一个例外)。而且,对于高可用性的要求其实也没那么高(哪怕丢掉用户,也不会丢掉生命)。互联网的高可用性要求,虽然大家都爱说的“7×24”服务,但是好像没有真正达到100%的,达到99.9%后面的9循环的公司全地球也寥寥无几。据我了解,新浪微博,应该就是Redis最大的用户,至少在国内。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表