我听说过 redis-cache 但它究竟是如何工作的?通过以某种方式缓存 rdbms 查询,它是否用作 django 和我的 rdbms 之间的层?
还是应该直接用作数据库?我对此表示怀疑,因为该 github 页面不包含任何登录详细信息,因此没有设置.. 只是告诉您设置一些配置属性。
这个 Redis 的 Python 模块在自述文件中有一个明确的使用示例:http: //github.com/andymccurdy/redis-py
Redis 被设计成一个 RAM 缓存。它支持基本的 GET 和 SET 键以及字典等集合的存储。您可以通过将 RDBMS 查询的输出存储在 Redis 中来缓存它们。目标是加速您的 Django 站点。在需要速度之前不要开始使用 Redis 或任何其他缓存 - 不要过早优化。
仅仅因为 Redis 将事物存储在内存中并不意味着它就是缓存。我见过人们将它用作数据的持久存储。
它可以用作缓存,这暗示它可用作高性能存储。如果您的 Redis 系统出现故障,尽管您可能会丢失未再次写回磁盘的数据。有一些方法可以减轻这种危险,例如热备份副本。如果您的数据是“关键任务”,例如您经营一家银行或一家商店,那么 Redis 可能不是您的最佳选择。但是,如果您使用持久的实时数据或一些社交互动内容编写高流量游戏,并且将数据丢失的可能性控制在可以接受的范围内,那么 Redis 可能值得一看。
无论如何,重点是,是的,Redis 可以用作数据库。
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 否则结果不是很有用)。
Redis 作为主数据库
是的,您可以使用 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 中使用 Redis
我们可以将 redis python 客户端redis-py用于 Django 应用程序。
Redis python 客户端 redis-py Github
我们可以将Django-redis用于 django 缓存后端。
Django-redis基于redis-py构建并添加了与 django 应用程序相关的额外功能。
其他库也存在。
Redis 用例和数据类型
一些用例
使用 Redis 的大型科技公司
Twitter GitHub Weibo Pinterest Snapchat Craigslist Digg StackOverflow Flickr