django - 如何安排 redis 缓存的失效?

标签 django content-management-system redis django-cache redis-cache

我正在使用 django 作为一个框架来为一个博客站点构建一个内容管理系统。

每篇博文都有一个路由,其中​​包含博文的唯一标识符。这些博客文章可以安排时间并有到期日。这意味着路由必须是动态的。

整个站点需要缓存,我们设置了redis作为后端缓存。我们目前针对静态路由缓存呈现的页面,但需要找到一种针对动态路由缓存页面的方法(并在博客文章过期时使它们失效。)

我可以使用 cron 作业,但它不合适,因为... a) 新的博文很少上线,也不是定期上线 b) 用户可以将帖子安排到分钟。这意味着 cron 作业必须每分钟运行一次,这看起来有点矫枉过正!

我刚刚找到了 django-cacheops库,它似乎完全符合我的需要(安排我们的缓存失效并通过信号使它们失效)。这与我们现有的设置兼容吗?设置是否容易?

我认为这是一个很常见的问题 - 有没有人有比上述更好的想法?

最佳答案

我无法对 django-cacheops 发表评论,因为我从未使用过它,但 Redis 提供了一种非常简单的方法来使用 EXPIRE 执行此操作命令:

Set a timeout on key. After the timeout has expired, the key will automatically be deleted.

用法:

SET some_key "some_value"
EXPIRE some_key 10

键 some_key 现在将在 10 秒内被 Redis 自动清除/删除。如果您需要从一开始就知道何时应该删除博客文章的缓存,那么这应该可以完美满足您的需求。

关于django - 如何安排 redis 缓存的失效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24725140/

相关文章:

django - 重新运行 Django 数据迁移

django - 在内联表单集中使用 Django FileField

java - 在 Spring 4 中干燥一个通用的 RedisTemplate

javascript - 如何将 Node 变量传递给外部javascript?

看板和 Redis 的 Docker-Compose 错误

Django 1.2 PostgreSQL 使用 ON DELETE NO ACTION 级联删除键

Python 社交认证 Steam 头像

open-source - 可以插入现有站点后端的开源 CMS?

youtube - 如何在 AppDrag 中创建灯箱?

php - 同一浏览器上的多个 session 用于一个 Web 应用程序