当我将 PostgreSQL 作为 Django 的数据库时,为啥要使用 Redis? [关闭]

Posted

技术标签:

【中文标题】当我将 PostgreSQL 作为 Django 的数据库时,为啥要使用 Redis? [关闭]【英文标题】:Why Should I use Redis when I have PostgreSQL as my database for Django? [closed]当我将 PostgreSQL 作为 Django 的数据库时,为什么要使用 Redis? [关闭] 【发布时间】:2013-02-06 00:24:57 【问题描述】:

我有一个 Django 应用程序,目前托管在 Amazon 的 EC2 服务上。我有两台机器,一台装有 Django 应用程序,另一台装有我的 PostgreSQL 数据库。到目前为止,它一直坚如磐石。

许多消息来源声称我应该在我的堆栈中实现 Redis,但是使用 Django 和 Postgresql 实现 Redis 的目的是什么?例如,如何在我的 Django 代码中实现 Redis?

如何在 PostgreSQL 中使用它?

这些都是我一直试图找到答案的问题,所以我来到这里希望从最大和最好的人那里得到答案。我真的很感激任何答案。

谢谢

【问题讨论】:

我以前听说过这个,我认为有些人使用 Redis 进行缓存 除了缓存之外,他们还会使用它吗?这是让我感到困惑的部分。人们如何使它与 Django 和 PostgreSQL 一起工作 它能解决您的问题吗? @FrankHeikens 嘿!目前我没有问题,我只是想弄清楚为什么我需要 redis 以及如何在我的 Django 代码中与 Postgresql 一起使用它 为了简单起见,不要解决你没有的问题。你可能会破坏一些东西...... 【参考方案1】:

Redis 是一个在 RAM 内存中运行的键值对存储系统,它就像一个“轻量级数据库”,由于它在 RAM 内存级别上工作,因此与 PostgreSQL 或任何其他传统的读/写相比,速度要快几个数量级Relational Database。 Redis 是一个所谓的NoSQL 数据库,就像Mongo 和许多其他数据库一样。它不能直接取代 PostgreSQL,您仍然需要永久存储,但它与关系数据库一起作为备用存储系统工作。如果您的 IO 操作开始变得昂贵,您可以使用 Redis,它非常适合快速计算和基于键的查询。

您可以使用包装器将其包含在您的 Django/Python 项目中,例如 redis-py。

Redis 的安装和使用非常简单,您可以查看redis-py 的示例。 Redis 独立于任何关系数据库,因此您可以使用它来永久和/或临时缓存、计算或存储值。它可以帮助减少对 PostgreSQL 的查询,最终您可以按照自己的方式使用它,并利用它来改进您的应用程序/架构。

这个类似的问题可以帮助你Redis with Django

【讨论】:

感谢您的快速回复!我将如何将它与 PostgreSQL 一起使用?看,我对这一切的困惑是应用程序将如何工作。 Django 会从 Redis 中提取信息,而 Redis 会从 Postgresql 中提取信息吗?如果是这样,它如何提取这些信息? 我已经更新了我的答案,你需要花几分钟时间阅读我发布的链接,我很确定你会明白的。 我不确定 Redis 真的“快几个数量级”。对其进行了测试(写-读 10E5 对键值)。我已经看到 Redis 的速度要快 2 倍。在许多情况下,您的缓存是否在 1 毫秒或 2 毫秒内提供结果并不重要。我在这里找到了类似的结果code.jjb.cc/benchmarking-postgres-vs-redis

以上是关于当我将 PostgreSQL 作为 Django 的数据库时,为啥要使用 Redis? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Django 应用程序部署@Bluemix,其中 postgresql 不能作为服务使用

几乎相同的 PostgreSQL 查询相差 1 分钟?

将 PDO 与 PostgreSQL 一起使用时如何忽略问号作为占位符

无法将 postgresql 与 django 连接

Django 在本地时区获取时间

PostgreSQL + Django + South 的第一步