使 ORM 缓存失效的最佳策略是什么?

发布于 2024-08-12 15:48:02 字数 79 浏览 4 评论 0原文

我们的 ORM 与缓存很好地结合在一起,所以我们所有的对象获取都被缓存了。目前,我们在插入/更新/删除对象之前和之后使对象无效。你的经验是什么?

We have our ORM pretty nicely coupled with cache, so all our object gets are cached. Currently we invalidate our objects before and after our insert/update/delete of our object. What's your experience?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青巷忧颜 2024-08-19 15:48:02

为什么在 i/u/d 之前和之后?

如果您不想直接更新缓存,那么假设您在每次缓存未命中时将其加载到缓存中,那么在 i/u/d 之后就足以使对象无效。如果您的对象空间足够大,以至于您的缓存可能会占用太多内存,那么您还需要一些过期机制(X 分钟后或 X 分钟后不被访问而无效)。

或者您可以选择 LRU(最近最少使用),但如果您的 ORM 本身不支持它,那么您自己实现起来并不容易。

Why before AND after i/u/d?

If you don't want to update your cache directly then it's enough to invalidate an object after i/u/d assuming you load it into cache on every cache miss. If your object space is big enough that your cache could use up too much memory, you'll need some expiration mechanism too (invalidate after X minutes or after X minutes w/o being accessed).

Or you could go for LRU (Least Recently used) but this is not easy to implement on your own if your ORM doesn't support it natively.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文