我一直在学习 Node.js,所以我决定做一个简单的广告网络,但我似乎无法决定要使用的数据库。我一直在和 Redis 打交道,但我似乎找不到通过特定条件查询数据库的方法,相反我只能获取键或列表的值或在键内设置。
我是不是遗漏了什么,或者我应该使用像 MongoDB 这样更强大的数据库?
Redis 通常被称为数据 结构服务器,因为密钥可以 包含字符串、散列、列表、集合 和排序集。
如果可以(易于实现),您应该使用这些原语(字符串、散列、列表、集合和排序集合)。 Redis 的主要优点是快如闪电,但它是相当原始的键值存储(redis 稍微先进一点)。这也意味着它不能像 SQL 那样
queried
。
使用更高级的存储可能会更容易,例如 Mongodb,它是一个面向文档的数据库。你在这种情况下做出的权衡是性能,但我相信你应该只在这成为一个问题时才解决这个问题,这可能不会是因为 Mongodb 也非常快并且具有它可以是
queried
的优势.我认为最好为您的查询(读>写)设置适当的索引以使其快速。
我认为主要的答案来自于数据结构。查看这篇关于 NoSQL 数据建模的文章,对我来说非常有帮助:NoSql 数据建模。
第二篇关于数据建模的好文章,并对 SQL 和 NoSQL 进行了比较如下:关系模型反模式。