请问有哪些例子可以说明同时使用Redis和MongoDB会有什么好处?
MongoDB 2.2之前没有过期机制,无法真正使用固定集合来实现TTL。Redis具有基于TTL的过期机制,便于存储易失性数据。例如,用户会话通常存储在Redis中,而用户数据将存储和索引在MongoDB中。请注意,MongoDB 2.2引入了低精度的过期机制,可用于清除数据等操作。
Redis提供了方便的集合数据类型及其相关操作(多个集合的联合、交集、差集等)。在此功能上实现基本的分面搜索或标记引擎非常容易,这是对MongoDB更传统索引能力的有趣补充。
Redis支持高效的阻塞弹出操作列表。这可用于实现即席分布式排队系统。它比MongoDB的可追溯游标更加灵活,因为后端应用程序可以侦听几个队列并设置超时时间,原子地将项目转移到另一个队列中等等。如果应用程序需要一些排队,则将队列存储在Redis中,并将持久性功能数据保留在MongoDB中。
Redis还提供了发布/订阅机制。在分布式应用程序中,事件传播系统可能很有用。这再次是Redis的一个绝佳用例,而持久数据存储在MongoDB中。
很明显,两者之间有远远更多的不同之处,但对于一个极高层次的概述:
在用例方面:
技术上:
它们有些重叠,但同时使用它们是非常普遍的。原因如下:
Redis可以用作传统数据存储的替代品,但通常与其他正常的“长”数据存储一起使用,如Mongo、Postgresql、MySQL等。