【发布时间】:2013-03-21 16:04:50
【问题描述】:
我有一个约会安排应用程序,其中绝大多数约会数据都是“桥下的水”。对于任何给定的日历页面,该页面上可能有 5% 的约会是新的;其余的都是旧的,不太可能改变。
问题是每个页面都可能有大量的约会,并且加载所有这些约会(即使是预先加载)很慢。我想做一些缓存以加快速度,但我不想每次有人创建约会时都使整个缓存无效,因为用户在每次创建约会后都会看到日历页面,所以似乎使整个缓存无效这一点会破坏缓存的全部目的。
我的理解是我想要的是LRU cache。我如何在 Rails/PostgreSQL 缓存中实现这一点?应该在应用程序级别还是数据库级别完成? LRU 缓存是否正确?
【问题讨论】:
-
我会考虑使用带有有效负载的
LISTEN和NOTIFY来向缓存发出选择性失效的信号。缓存可以是 Memcached、Redis 或其他更特定于 ActiveRecord/Rails 的东西。
标签: ruby-on-rails postgresql caching