jjzjj

design-patterns - 用于多个生产者和多个消费者的 Redis pub sub

假设有N个生产者和订阅这N个生产者的M个用户。这里N生产者生产N种不同类型的消息,例如producer1producesmessageType1,producer2producesmessageType2,producer3producesmessageType3,...producerNproducesmessageTypeN.M个用户可以订阅这些消息。一个用户可以订阅多种类型的消息。例如user1consumes(messageType1,messageType2,messageType10)user2consumes(messageType14,messageType5)..us

database-design - 正确存储构建 "Last seen Products"

想知道像许多电子商务网站(例如亚马逊)那样构建“最后一次看到的产品”功能的最佳存储是什么。以下是一些要求:活跃用户:200MLastSeenProducts按类别(即:鞋子、电子产品等)。大约有500个类别每个类别存储10个产品(虽然不会访问所有类别)LastSeenProducts必须持久化,这样无论何时用户重新登录,都可以获取并构建列表。检索列表的时间应小于100毫秒。我正在考虑以太Redis或Cassandra。看起来两者都为此功能提供了很好的功能(某种时间线),但我不确定每一个的优缺点是什么。想法?谢谢 最佳答案 如果您的数

node.js - Redis 发布订阅 : Design pattern

我们正在使用socketi/o处理大量实时数据。用户使用套接字发送/接收数据。由于我们正在使用负载均衡器,因此我们不能使用套接字i/o的命名空间模型,而是在套接字中使用redis的pub/sub。到目前为止,我们为每个用户每个channel的订阅创建了一个单独的redis连接。但最近我们遇到了redis上达到最大连接数的问题(Error:Readycheckfailed:ERRmaxnumberofclientsreached),我们发现这是因为通过pub有太多的redis连接子。为了解决这个问题,我想到,与其为每个用户使用多个订阅Redis连接,不如有一个发布Redis连接和一个订阅

database-design - MongoDB 表方案设计-最佳实践。是否使用主文档(如在主表 rdbms 中)

背景:我在我的项目中使用MongoDB进行原型(prototype)设计,我使用一些主表来存储定义并在数据表中使用这些键。我的几个主表是ClassMaster_Feed_Provider{intkey;stringfeed_provider_namestringaddress}ClassMaster_File_Types{intid;stringtype}我的数据表是ClassData_Feeds{intid,intfile_type_key,intfeed_provider_key,DateTimetime}**我在这里使用feed_provider_key链接来自master_fe

database-design - MongoDB RSS 提要条目,将条目嵌入提要对象中?

我正在MongoDB中保存对RSSFeed的引用,每个Feed都有一个不断增长的条目列表。在设计模式时,我很关心MongoDBSchemaDesign-Embedvs.Reference中的这条语句文档:Iftheamountofdatatoembedishuge(manymegabytes),youmayreadthelimitonsizeofasingleobject.如果我正确理解该语句,这肯定会发生。所以问题是,我认为我不应该不将Feed条目嵌入Feed是正确的,因为我最终会达到单个对象的大小限制? 最佳答案 在设计架构时,

database-design - 在 mongoDB 中模拟一个问答站点

我需要在mongoDB中模拟一个类似stackoverflow的问答网站,这是我的主要问题。我有2个主要对象-问题和用户(只是忘记其他人,如答案等...)。用户提问。我需要始终向用户显示问题。可以搜索问题并浏览所有问题。更安全的说法是用户会问的问题少于1000个。用户有一个经常更新的声誉,当前的声誉应该一直和问题一起显示。解决方案1:将用户嵌入问题中-无需执行连接,但当用户声誉发生变化时,应更新所有相关问题。且不易显示单个用户解决方案2:将用户和问题建模为单独的集合(就像在RDBMS中一样)-现在更新信誉不是问题,但每次检索问题时都需要在用户和问题之间进行连接。就像在RDBMS中一样。

database-design - 一般 MongoDb 数据库设计和索引性能 - 一个或多个集合?

这是一个关于mongodb数据库设计的一般问题,但我提出问题的原因是我正在为一个系统设计数据库,在该系统中我为许多小型网站生成静态html文件。网站可以包含不同类型的页面,有些是用户列表,有些是其他页面的列表,有些只是静态信息页面。现在我想知道用一个页面集合来存储所有不同类型的网站页面的数据是否更好,或者是否更好有多个集合-每种类型的页面一个集合。如果我只使用一个集合,那么这可能会在一个包含许多条目的表上产生许多索引,包括按页面类型的索引。如果使用多个集合,那么每个集合都会更小并且有几个索引,包括一个用于id字段上的每个集合的索引。我的直觉是,通常使用多个集合会更好,因为这样数据就已经

database-design - MongoDB 分析模式

Mongo新手,接受分析任务并有一个架构问题。我来自SQL服务器,我有4个表...stats_landing_table-------------------idpost_idvisit_datecountrybrowserimpressionsstats_geo_table---------------idpost_iddatecountrycountry_countstats_browser_table-------------------idpost_iddatebrowserbrowser_countstats_impressions_table----------------

mongodb - Mongo Schema Design 时序数据

我正在使用MongoDB开发Web应用程序,我对架构设计有一些疑问。我想做的是用Mongo存储每个用户的能耗数据。对于每个用户,我们都会有用电量的数据,这是一个时间戳和消耗量。所以问题是如何将它们存储在Mongo中,我有两种方法。将所有内容放在一个集合中。所以它会像这样:{"user_id":"e211a233-808f-fc43-0800-c05650001785","Value":274,"Time":1314691200}所以,每个用户可能有几千条数据,而我们有几千条用户。因此,一个集合中将有数千万个文档。将一个用户的数据放在一个集合中。所以我们将有数千个集合和每个集合中的数千个

database-design - 针对特定用例的 MongoDB 模式设计

我目前正在为我的数据模式建模,我不确定我的思维过程是否有意义。所以我想我可以在这里问一些更有经验的MongoDB人:假设我的应用程序每天生成多达10.000个事件文档。我想基于时间访问它们。比如:“把这三天发生的所有事情都告诉我!”。我在大学里收集的RDBMS知识首先告诉我:“做一个事件集合并为每个文档提供事件的属性‘日期’。完成。”但后来我萌生了每天收集的想法!然后我可以非常快速地访问这些事件,只需调用其对应的集合即可获取一天的所有事件。这有意义吗?我可以在不牺牲速度/性能的情况下拥有成百上千个收藏吗?谢谢你的建议:-) 最佳答案