何时使用Redis等键/值存储而不是SQL数据库?

Chr*_*ams 159 redis

我已经阅读了关于键/值存储的很多东西,比如Redis,但我似乎无法弄清楚什么时候在应用程序中使用它.

假设我正在构建一个基于Web的应用程序; 我知道我将用于前端,后端,数据库等的堆栈.在某些情况下,我会去"哦,我们还需要Redis for X,Y或Z."

我将赞赏node.js示例以及非node.js示例.

yoj*_*o87 95

我似乎无法弄清楚什么时候在应用程序中使用它.

我建议你阅读教程,其中也包含用例.由于redis是面向内存的,因此对于经常更新的实时数据非常有用,例如会话存储,状态数据库,统计,缓存及其高级数据结构为许多其他场景提供了多功能性.

但是,Redis并不是NoSQL替代经典关系数据库的,因为它不支持RDBMS世界的许多标准功能,例如查询可能会降低数据量的数据.替换是MongoDB或CouchDB等文档数据库,而redis非常适合补充特定功能,其中高级数据结构的速度和支持非常方便.

  • 链接不再可用 (24认同)
  • 我使用该教程网站URL进行了快速的Google搜索,并将其作为热门搜索引起的 - http://www.slideshare.net/dvirsky/introduction-to-redis-version-2 (5认同)
  • 您链接的教程非常棒! (2认同)

zen*_*0lf 61

我认为Redis的使用案例没有比本文更好的解释:http: //antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

我打赌你会有一个啊哈!那一刻.;)

以前读者的一句话:

我之前读过有关Redis的文章,并听过公司如何使用它,但从未完全理解它的用途.读完之后,我实际上可以说我现在了解Redis以及它是如何有用的.令人惊讶的是,在听了这么多关于它之后,它只是一篇相对简单的文章.


sum*_*mit 8

  • 我很想在实时项目中使用redis.我最近做了一个gps跟踪系统,它以前是作为数据库在mysql上构建的.

    优点

    1. 每次跟踪器广播数据时我都不需要打开mysql连接并存储在其上.我们可以将它保存在redis上,然后使用其他进程迁移到mysql.这将避免从多个跟踪器到mysql的并发连接.
    2. 我可以发布所有那些gps数据和其他客户端(javascript/android)可以使用基于redis的消息队列实时订阅
    3. 我可以触发实时警报


Ehe*_*Tov 7

有一件事是 Redis 不是关系数据库。如果您需要 SQL“JOIN”,那么您不会想使用 Redis,也不会使用任何其他非关系数据库。Redis 比大多数关系数据库更快。如果您只想进行键:值对查询,那么您将需要使用 Redis。