20161216 痛记

来源:互联网 发布:外贸域名网址 编辑:程序博客网 时间:2024/05/16 13:39

昨天 被鄙视了一次,真的没谁了。1 我只是希望今后的我能专注于工作,别再想乱七八糟的了,否则要痛苦死。。 2 我希望有一天我也能在csdn上写出一些有质量的文章,而不是现在的大杂烩和一些废话。 我知道昨天我去了就是挨虐,可惜我天生就有受虐倾向,这回如愿以偿了。

痛定思痛: 昨天被问得问题有(其实都是最基本的面试题): 

1 字符串转换成数字的问题,我感觉我回答对了,可惜我忘了很多基本的api 比如math.pow(10,2);

2 用一条sql 统计出所有 student的分数段,这个我到现在也不是很清楚,大飞说用union,可这不是他们要的答案,他要的是group by,可是我试着用了一下,by score? 还是 by score div 10 ? 最后不还是 10分的多少人, 20分的多少人, 还是无法满足他要的60分以下多少人。 

3 mongodb 和redis 都存储了什么,如果一台redis 挂了,怎么办? 我哪知道怎么办,这东西肯定有备份的,一台挂了转到另一台呗,不至于两台都挂了吧? 数据量也不大。。不过这两个nosql数据库我要多研究研究了。。 刚看了一篇文章,为什么用mongodb 存储log 写的还不错。http://blog.csdn.net/sandysong28/article/details/6455926  文章基本的观点就是因为 1 schame free,随时可以加字段进去,2 可扩展性极佳,不用担心存储空间不够的问题      3 写多读少,写的时候可以异步,不用担心占用请求响应时间的问题,引用:对于collection,可以规定固定大小(capped collection) ,比如100G,这样mongodb会按照LRU(Least Recently Used 一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。)算法来复用空间,不用惦记着删日志,中午问了大飞,我们的mongo还用于存储地理位置,

 db.places.find({'coordinate':{$near: [121.4905, 31.2646], $maxDistance:2}})
因为有很多mongodb 已有的函数可以用,redis 则用于缓存,替代了memcached,mongodb本身是用来存储文本数据得.
但是可以结合gridfs来存储二进制数据,比如图片。

在公司,mongodb 还用于存储微信推送给用户得一些消息,订单付款提醒等

4 在网上看了这么一句话还挺有意思的,把MongoDB当成MySQL, 把Redis当成内存,跨服数据交换用Redis. 数据持久化用MongoDB 

(引用网络上的)还有一句话: 

从我的经验来讲,我做的爬虫,一般是把url放在redis里面,而爬取到的数据放在MongoDB里面。这样做的好处是,对于MongoDB,只用来保存数据。爬到的数据存到里面就不管了。而对于Redis,它更像是一个队列,有源源不断的URL进去,有源源不断的URL出来,并且URL用过一次以后就就不需要了,再随着爬取到的数据一起存入MongoDB里面。 

mongodb 加了索引是 O(log n),redis 是 O(1)


MongoDB是nosql数据库,它支持把一部分热数据放到内存中,方便用户更快的去处理它。

Redis是内存型数据库,是完全的内存数据库!所有的数据都在内存,不存在硬盘一部分,内存一部分的情况。当然可以用save去存数据到硬盘,但这是为了备份安全性考虑而不是使用。

redis缺点: 是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上


  ------ from 乎 https://www.zhihu.com/question/29775064

0 0