我听说过redis-cache,但它究竟是如何工作的呢?它是通过某种方式缓存rdbms查询,作为django和我的rdbms之间的一层来使用吗?
还是它应该直接用作数据库?我表示怀疑,因为那个Github页面没有涵盖任何登录详细信息,也没有设置说明..只告诉你设置一些配置属性。
这个 Python 模块用于 Redis,readme 中有一个清晰的使用示例: http://github.com/andymccurdy/redis-py
Redis 旨在作为 RAM 缓存。它支持基本的 GET 和 SET 键操作,以及像字典这样的集合存储。您可以通过将其输出存储到 Redis 中来缓存 RDBMS 查询。目标是加速 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和关系型数据库之间。
它是如何工作的
给定一个URL,尝试在缓存中找到该页面,如果页面在缓存中:返回缓存页面,否则:生成该页面,将生成的页面保存在缓存中(供下一次使用),并返回该生成的页面
如何使用Redis与Django
我们可以为Django应用程序使用Redis Python客户端redis-py。
Redis Python客户端redis-py Github
我们可以使用Django-redis作为Django缓存后端。
Django-redis基于redis-py并添加了与Django应用程序相关的额外功能。
还存在其他库。
Redis使用案例和数据类型
一些使用案例
使用Redis的大型技术公司
Twitter GitHub Weibo Pinterest Snapchat Craigslist Digg StackOverflow Flickr