让我们假设我们有某种物品,这些物品可以由用户评定。我应该将项目评级和项目数据存储在不同的memcache密钥中吗?
从逻辑上讲,我们应该保持对主要商品数据的评级,因为商品数据变化很少,但评级更改更频繁。当某人对该项目进行评分时,我应该只对项目评级密钥无效,而不是整个项目。
为什么我问这个问题?例如,我每页有100个项目....
总计: 201 memcache“查询”
将项目评级与主要项目数据一起存储在一个键中,我们只能获得 101个memcache“查询”。
那么,最佳做法是什么? 我真的很担心每页的memcache“查询”数量。或者我不应该担心它?
谢谢。
答案 0 :(得分:1)
Memcache允许将键数组放入get()方法。
(俄语)http://highload.com.ua/index.php/2009/08/05/memcache-multi-get-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC/
Fetched 15000 objects with standard get in 0.47441411018372s - using get
Fetched 15000 objects with multiple get in 0.023789882659912s - using multi get
答案 1 :(得分:0)
如果您将单独保存项目评级,您将无法通过它进行排序。最好使用mysql innodb表(如果你真的需要按等级排序)为此目的(它被优化以适应高并发性和高写入负载)