迅闻网
让更多人看到你

mongodb和redis的场景

  mongodb和redis的场景

现在的分布式项目根本都会用到redis和mongodb,但是redis和mongdb到底有什么不同呢,今日我就根据咱们公司的项目来具体介绍一下redis和mongodb的各自的使用场景。
首先咱们这个项目中有两种使用场景:
场景一:要求TPS(不知道的右转百度)特别高的,比方咱们项目有一个点赞的功用,这个点赞的功用促发频率特别高,并且并发量也会特别大,但是它的数据量不会特别大。根据这种状况下,咱们选用
redis来完成点赞功用。

 

mongodb
场景二:项目中触及谈论的内容,并且这个谈论表的数据后期会非常大(海量的数据),最后在数据量非常大的状况下还要求比较复杂的查询。根据上述这些状况,咱们选用
mongodb作为谈论表存储数据库。
redis和mongodb相同点和不同点我这边就不进行过多的描述,网上的文章满地都是,比方这篇文章:
https://zhidao.baidu.com/question/178866950875265404.html
使用晋级:现在在给咱们介绍一下咱们项目中关于redis和mongodb深化的使用,咱们接着上面的使用场景持续往下说。下面咱们接着深化上面的这两个场景,例如下面的这两个场景:
场景一:比方咱们上面说到的场景一中点赞这个行为,由于咱们项目对点赞这个数据的安全性要求特别高,并且撤销点赞的过程种会触及其它关联的操作,并且有必要保证是线程是安全的,最重要的是咱们需要redis高可用性,不能轻易的挂掉。这个时分咱们就用到了
redis中数据耐久化和分布式锁的内容了,经过redis数据耐久化,咱们能够将缓存的数据保存到本地中来。利用redis分布式锁,咱们能够控制撤销点赞数据安全问题。关于高可用性的话,咱们能够选用redis集群来完成,redis集群咱们选用
rediscluster来完成,这样咱们就能够完成点赞这种场景的所有要求了。
场景二:咱们接着谈论表的内容,刚开始谈论表可能数据不是特别大,但是跟着时刻的增长,谈论表的数据会越来越大,但是咱们查询的时刻要控制在一段的间内,不能太久才查找到相关的谈论。最后也是相同的要求,谈论查询的高可用性。根据这种场景咱们能够选用
mongodb中的分片来完成,经过mongodb的分片机制,咱们能够将海量的数据查询别离负载到不同的分片服务器上面,最后将数据查询的数据成果整合到一同。根据这种状况,不管数据量有多大,咱们都能够完成快速的查询功用,查询时刻约等于
(数据量/分片数量)。分片其实本身就是一种高可用性的方案,由于每一个分片都保留着完整的一份数据,每次刺进数据的时分,先刺进一个主分片中,然后同步复制到所有从分片中,即使一个分片挂了,其他分片也能自动晋级为主分片,持续作业。
疑问点:
这边可能会有人要问,已然每片的数据都相同,那查询的时刻不肯定也相同吗,怎么可能是(数据量/分片数量),不应该是(数据量*分片数量)时刻吗。关于这个疑问的话,咱们可能得仔细研讨一下mongodb分片的规矩了,mongodb分片的同时也会把数据进行分片区分,相同一份数据但是每片查询的区域是不相同的,比方分片一会查询数据的前半截,然后分片二会查询数据的后半截。这样不就能够做到相同的一份数据,但是每一份查询的数据区域都是不相同的。我这边仅仅简单的说明,想具体研讨的话,能够自己百度百度研讨研讨。

 

未经允许不得转载:迅闻网 » mongodb和redis的场景
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

迅闻网-让更多人看到你

登录/注册返回首页