当前位置: 首页 > 面试题库 >

使用Redis的MongoDB

陆高峰
2023-03-14
问题内容

谁能举例说明您将从Redis和MongoDB一起使用中受益的情况?


问题答案:

Redis和MongoDB可以一起使用,效果很好。Craiglist是一家以运行MongoDB和Redis(以及MySQL和Sphinx)而闻名的公司。请参阅Jeremy
Zawodny的演示文稿。

MongoDB对于以各种方式索引的持久性,面向文档的数据很有趣。对于易失性数据或对延迟敏感的半永久性数据,Redis更有趣。

以下是在MongoDB之上具体使用Redis的一些示例。

  • 2.2版之前的MongoDB还没有到期机制。上限集合不能真正用于实现真正的TTL。Redis具有基于TTL的过期机制,可以方便地存储易失性数据。例如,用户会话通常存储在Redis中,而用户数据将存储在MongoDB中并建立索引。请注意,MongoDB 2.2在集合级别引入了一种低精度的过期机制(例如,用于清除数据)。

  • Redis提供了一种方便的集合数据类型及其关联的操作(联合,交集,多个集合的差等)。在此功能之上实现基本的多面搜索或标记引擎非常容易,这是对MongoDB更传统的索引功能的有趣补充。

  • Redis支持有效地阻止列表上的弹出操作。这可用于实现临时分布式排队系统。它比MongoDB可尾游标IMO更具灵活性,因为后端应用程序可以在超时的情况下侦听多个队列,原子地将项目转移到另一个队列,等等…如果应用程序需要排队,则将队列存储在Redis中是有意义的,并将持久性功能数据保留在MongoDB中。

  • Redis还提供了发布/订阅机制。在分布式应用程序中,事件传播系统可能会有用。对于持久性数据保留在MongoDB中而言,这也是Redis的绝佳用例。

由于使用MongoDB设计数据模型要比使用Redis容易得多(Redis更底层),因此可以从MongoDB的主要持久性数据灵活性和Redis提供的额外功能(低延迟)中受益。
,项目到期,队列,发布/订阅,原子块等)。这确实是一个很好的组合。

请注意,您永远不要在同一台机器上运行Redis和MongoDB服务器。MongoDB内存被设计为可以换出,Redis不是。如果MongoDB触发某些交换活动,则Redis的性能将是灾难性的。它们应该在不同的节点上隔离。



 类似资料:
  • 主要内容:安装redis模块,Python Redis连接,Python Redis通用操作,Python Redis字符串,Python Redis列表,Python Redis散列,Python Redis集合Python 使用 Redis 相对比较简单,Python 专门提供了操作 Redis 的第三方模块,即 redis 模块,该模块可以直接使用 Python 包管理工具 来安装。本节内容适合 Python 开发人员阅读。 安装redis模块 下面以 Windows 系统为例,使用包管理

  • 主要内容:安装扩展程序,连接Redis服务器,PHP Redis字符串,PHP Redis列表,PHP Redis哈希,PHP Redis键通过 PHP 使用 Redis 之前,同样需要做一些准备工作,首先你应该熟练掌握  PHP 语言,再者是已经安装了 PHP Redis 扩展程序。本节内容是专门为 PHP 程序开发人员准备的。 安装扩展程序 首先下载 PHP Redis 扩展程序( 点击前往),下载的扩展程序要与 Redis 版本相符合。当下载完成后,将文件解压至 phpredis 目录,然

  • 主要内容:安装Redis驱动,连接Redis服务器,Java Redis字符串,Java Redis列表,Java Redis键在开始学习本节内容之前, 首先需要您掌握 Java 编程语言,其次确定您已经安装了 Redis 服务及 Java Redis 驱动,并且能够成功运行 Java 程序。 本节介绍如何在 Java 中使用 Redis。 安装Redis驱动 如果想在 Java 环境下操作 Redis ,您需要安装相应的 Redis 驱动程序,也就  jedis.jar 包(点击下载),然后将

  • 参考文档: http://redis.cn/clients.html https://github.com/andymccurdy/redis-py 安装Redis sudo pip install redis 简单的redis操作 字符串string操作 In [1]: import redis In [2]: r = redis.StrictRedis(host='localhost',

  • 问题内容: 注意对于那些使用Redis挣扎的人,必须启动Redis服务器。 在Windows上,有一个redis发行版,请查看以下链接:https : //github.com/dmajkic/redis/downloads,然后通过启动“ redis-server.exe”来启动服务器。 我正在遵循有关node.js的教程。本教程使用Express和Redis。我安装了redis和connect

  • 问题内容: 我已升级到最新的Java 7 build 1.7.0_60-b19,但问题仍然存在。 我进行了另一个线程转储,发现了相同的问题:在DefaultCorrelatingMessageHandler锁调用中,所有DefaultMessageListenerContainers(计数为20)都由taskScheduler(entityScheduler-3)锁定。 这是调度程序和聚合器配置: