查询Redis?

我一直在学习Node.js,所以我决定做一个简单的广告networking,但我似乎无法决定使用一个数据库。 我已经搞乱了Redis,但我似乎无法find一种方法来查询数据库的具体条件,而是我只能得到一个密钥或列表的值或设置内的密钥。

我错过了什么,或者我应该使用一个更强大的数据库,如MongoDB?

我build议阅读关于Redis的这个教程,以了解它的概念和数据types。 我也遇到了一些问题,直到我阅读了一些文章,并尝试testing和比较Redis与其他解决scheme之前,为什么没有类似于其他(不)SQL数据库的查询支持。 也许这不是你的用例的正确的数据库,虽然它是非常快的,并支持先进的数据结构,但缺乏查询哪些是至关重要的。 如果你正在寻找一个数据库,允许你查询你的数据,那么你应该尝试mongodb或者riak 。

Redis通常被称为数据结构服务器,因为密钥可以包含string,哈希,列表,集合和有序集合。

如果能够(容易实现),你应该使用这些原语(string,散列,列表,集和有序集)。 Redis的主要优点是闪电般快速,但它是一个相当原始的键值存储 (Redis稍微高级一点)。 这也意味着它不能被queried ,例如SQL。

这可能会更容易使用更高级的存储,例如Mongodb,这是一个面向文档的数据库 。 在这种情况下,你所做的权衡是PERFORMANCE,但是我认为只有在问题出现的时候才能解决这个问题,这可能不会是因为Mongodb速度相当快,而且具有可以被queried的优势。 我认为为你的查询build立适当的索引是可取的(读>写)以使其更快。

我认为主要的答案来自数据结构。 查阅这篇关于NoSQL数据build模的文章,对我来说非常有帮助: NoSql数据build模 。

有关数据build模的第二篇好文章,并在SQL和NoSQL之间进行比较如下: 关系模型反模式 。