首页 > 解决方案 > 如何使用 Django Rest Framework 有效管理缓存(Redis)?

问题描述

我们已经使用 Django 和 Django RestFramework 已经有很长一段时间了,在 Redis 中管理缓存面临着很多挑战,我们的模型看起来像

(1) 学校(学校详情)

(2) 教师(FK 学校,提供教师的所有详细信息)

(3) 学生(FK 教师,附有教师的所有详细信息)

我们的用户将在 School 上操作 CRUD 操作,例如 /get_all_info 应该返回一个 JSON 对象,例如,

{
 "name": "something"
 "teachers": [
   {
     "name": "teacher1 name",
      "students": [
         {
            "name" : "student1 name"
         }, ... all students of that teacher
      ]
    }, ... all teacher of that school
 ]
}

此外,整个系统非常动态,每个组件都在不断变化。大约 90% 的请求属于上述类型。

我们正在考虑添加保存后信号以每次为学校删除完整缓存,就像学生在保存后更新一样,首先我们会找到他-她的学校,然后删除该学校的缓存。有没有更优雅/更好的方法?有没有可以处理所有这些的python库?

标签: djangodjango-modelsdjango-rest-frameworkredisdjango-redis

解决方案


推荐阅读