106

我听说过 redis-cache 但它究竟是如何工作的?通过以某种方式缓存 rdbms 查询,它是否用作 django 和我的 rdbms 之间的层?

还是应该直接用作数据库?我对此表示怀疑,因为该 github 页面不包含任何登录详细信息,因此没有设置.. 只是告诉您设置一些配置属性。

4

5 回答 5

76

这个 Redis 的 Python 模块在自述文件中有一个明确的使用示例:http: //github.com/andymccurdy/redis-py

Redis 被设计成一个 RAM 缓存。它支持基本的 GET 和 SET 键以及字典等集合的存储。您可以通过将 RDBMS 查询的输出存储在 Redis 中来缓存它们。目标是加速您的 Django 站点。在需要速度之前不要开始使用 Redis 或任何其他缓存 - 不要过早优化。

于 2010-09-27T15:17:05.980 回答
61

仅仅因为 Redis 将事物存储在内存中并不意味着它就是缓存。我见过人们将它用作数据的持久存储。

它可以用作缓存,这暗示它可用作高性能存储。如果您的 Redis 系统出现故障,尽管您可能会丢失未再次写回磁盘的数据。有一些方法可以减轻这种危险,例如热备份副本。如果您的数据是“关键任务”,例如您经营一家银行或一家商店,那么 Redis 可能不是您的最佳选择。但是,如果您使用持久的实时数据或一些社交互动内容编写高流量游戏,并且将数据丢失的可能性控制在可以接受的范围内,那么 Redis 可能值得一看。

无论如何,重点是,是的,Redis 可以用作数据库。

于 2011-10-11T06:40:02.303 回答
24

Redis 基本上是一个“内存中”的 KV 存储,有很多花里胡哨的东西。它非常灵活。您可以将它用作临时存储,如缓存,或永久存储,如数据库(其他答案中提到的警告)。

当与 Django 结合使用时,Redis 的最佳/最常见用例可能是缓存“响应”和会话。

这里有一个后端https://github.com/sebleier/django-redis-cache/和 Django 文档中的优秀文档:https://docs.djangoproject.com/en/1.3/topics/cache/

我最近开始使用https://github.com/erussell/django-redis-status来监控我的缓存 - 很有魅力。(在 redis 上配置 maxmemory 否则结果不是很有用)。

于 2011-07-17T14:00:09.883 回答
5

您还可以将 Redis 用作 Django 应用程序中分布式任务的队列。您可以将其用作CeleryPython RQ的消息代理。

于 2016-12-26T13:54:11.770 回答
5

Redis 作为主数据库

是的,您可以使用 Redis 键值存储作为主数据库。Redis 不仅存储键值对,它还支持不同的数据结构,例如

  1. 列表
  2. 排序集
  3. 哈希
  4. 位图
  5. 超级日志

Redis 数据类型官方文档

Redis 在内存键值存储中,因此如果发生 Redis 服务器故障,您的数据将丢失,您必须意识到这一点。

Redis 还可以持久化数据检查官方文档。

Redis 持久化官方文档


Redis 作为缓存

是的,Redis 位于 Django 和 RDBMS 之间。

这个怎么运作

given a URL, try finding that page in the cache if the page is in the cache: return the cached page else: generate the page save the generated page in the cache (for next time) return the generated page

Django的缓存框架官方文档


如何在 Django 中使用 Redis

我们可以将 redis python 客户端redis-py用于 Django 应用程序。

Redis python 客户端 redis-py Github

我们可以将Django-redis用于 django 缓存后端。

Django-redis基于redis-py构建并添加了与 django 应用程序相关的额外功能。

Django-redis 文档 Github

其他库也存在。


Redis 用例和数据类型

一些用例

  • 会话缓存
  • 实时分析
  • 网页缓存
  • 排行榜

按核心数据结构类型划分的顶级 Redis 用例


使用 Redis 的大型科技公司

 Twitter GitHub Weibo Pinterest Snapchat Craigslist Digg StackOverflow Flickr 

于 2020-02-21T07:19:05.850 回答