我读过一些关于键/值存储的很棒的东西,比如Redis,但我似乎不知道什么时候应该在应用程序中使用它。
假设我正在构建一个基于web的应用程序;我知道我将在前端、后端、数据库等方面使用什么堆栈,在哪些情况下我会说“哦,我们还需要Redis来实现X、Y或z”。
我很欣赏node.js的例子以及非node.js的例子。
Redis不是一个关系数据库。如果你需要一个SQL“JOIN”,那么你不会想要使用Redis,也不会使用任何其他非关系数据库。Redis比大多数关系数据库都要快。如果你只打算做键值对查询,那么你会想要使用Redis。
我似乎不知道什么时候该在应用程序中使用它。
我建议你阅读这教程,其中也包含用例。由于redis是相当面向内存的,它非常适合频繁更新的实时数据,如会话存储,状态数据库,统计数据,缓存和它的高级数据结构提供了许多其他场景的通用性。
然而,Redis并不是经典关系数据库的NoSQL替代品,因为它不支持RDBMS世界的许多标准功能,比如查询数据,这可能会降低它的速度。替代的是像MongoDB或CouchDB这样的文档数据库,而redis在补充特定功能方面非常出色,其中速度和对高级数据结构的支持非常方便。
我打赌你会有一个啊哈!时刻。;)
引用之前一位读者的话:
我以前读过Redis,也听说过公司是如何使用它的,但从来没有完全理解它的目的。读完这篇文章后,我可以说我现在理解Redis了,它是多么有用。令人惊讶的是,在听了这么多关于它的内容之后,我只花了一篇相对简单的文章。
摘自文章:
Redis在许多方面与其他数据库解决方案不同:它使用内存作为主存储支持,磁盘仅用于持久性,数据模型非常独特,它是单线程的等等。我认为另一个很大的区别是,为了在你的生产环境中利用Redis,你不需要切换到Redis。你可以使用它来做以前不可能做的新事情,或者是为了解决旧问题。
本文涉及的用例:
优势