我一直在学习Node.js,所以我决定制作一个简单的广告网络系统,但是我似乎无法确定要使用哪个数据库。我已经尝试使用Redis,但我似乎找不到按特定条件查询数据库的方法,而只能获取键或键内部的列表或集合的值。
我是否遗漏了什么,或者应该使用更强大的数据库,如MongoDB?
我一直在学习Node.js,所以我决定制作一个简单的广告网络系统,但是我似乎无法确定要使用哪个数据库。我已经尝试使用Redis,但我似乎找不到按特定条件查询数据库的方法,而只能获取键或键内部的列表或集合的值。
我是否遗漏了什么,或者应该使用更强大的数据库,如MongoDB?
Redis通常被称为数据结构服务器,因为键可以包含字符串、哈希、列表、集合和有序集合。
如果可以(易于实现),您应该使用这些基元(字符串、哈希、列表、集合和有序集合)。 Redis的主要优点是它非常快速,但它相对原始key-value store(Redis稍微先进一些)。这也意味着它不能像SQL那样进行查询
。
也许使用更高级的存储方式会更容易,例如面向文档的数据库Mongodb(链接)。在这种情况下,你需要权衡性能,但我认为只有在出现问题时才需要考虑这个问题,因为Mongodb也非常快速,并且具有可以进行查询的优势。我认为为了使查询(读>写)快速,建议为其添加适当的索引。
我认为主要答案来自数据结构。关于NoSQL数据建模,这篇文章对我很有帮助:NoSql Data Modelling。
另一篇关于数据建模的好文章,介绍了SQL和NoSQL之间的比较:The Relational model anti pattern。