Redis与Django

2 投票
2 回答
2992 浏览
提问于 2025-04-16 17:57

Redis 似乎在 Django 中是一个很受欢迎的缓存选择,但它是否也可以作为我的 Django 模型的数据库呢?我在考虑把一个大型分类系统从 MySQL 转移到 Redis,里面有很多非常小的记录(只有名称、父级 ID 和 ID),所以虽然我对键值数据库的概念还比较陌生,但这似乎很合理?

我越是搜索,越发现好像没有简单的方法可以把 Redis 作为后端连接到 Django,以便与模型同步?

2 个回答

1

我虽然来晚了,但这可能对其他人有帮助。

Redis可以同时作为两种用途

  1. 作为主数据库
  2. 作为缓存

Django官方支持MySQL和Postgres数据库,因为它使用了ORM(对象关系映射)。

所以你可以把MySQL或Postgres当作主数据库,同时用Redis来缓存你最常用的数据模型,使用Redis中的哈希功能。

Redis其实是一个内存中的键值存储,如果出现故障,你的数据会丢失。

不过,Redis也支持持久化,你可以查看相关资料。

Redis持久化的官方文档


建议

我建议在Django中使用MySQL/Postgres作为主数据库,以便利用ORM的优势,同时使用Redis或memcached来进行缓存。

3

官方的Django框架只支持关系型数据库管理系统(RDBMS)。在你的情况下,我建议你看看一些项目,比如Django-nonrel。他们在博客上提到过关于Redis后端的内容。

撰写回答