【发布时间】:2010-02-22 13:43:52
【问题描述】:
假设我们有一些物品,这些物品可以被用户评分。我应该将商品评分和商品数据存储在不同的内存缓存键中吗?
从逻辑上讲,我们应该将评分排除在主要项目数据之外,因为项目数据很少更改,但评分更改更频繁。当有人对项目进行评分时,我应该只使项目评分键无效,而不是整个项目。
我为什么要问这个问题?例如,我每页有 100 个项目....
- 我正在获取此页面的项目 ID = 1 个内存缓存“查询”
- 我正在获取页面上每个项目 ID 的项目数据 = 100 个内存缓存“查询”
- 我正在获取页面上每个项目 ID 的项目评级 = 100 个内存缓存“查询”
总计:201 个内存缓存“查询”
将项目评分与主要项目数据一起存储在一个键中,我们将仅获得 101 个内存缓存“查询”。
那么,最佳做法是什么? 我真的很担心每页内存缓存“查询”的数量。或者我不应该担心?
谢谢。
【问题讨论】:
-
如果我们添加“最喜欢的时间”、“cmets 的数量”等 - 我们将拥有更多的内存缓存“查询”。中庸之道在哪里?
-
或者我们可以通过更改缓存数据而不是删除整个键来避免缓存失效?
标签: memcached