才10000的数据你能搞出效率低下那才是人才。
你的性能瓶颈会出现在没事加载巨大的商品描述上,只要你只获取列表所需的数据,不管你缓不缓存加不加索引,甚至连数据库都不要,都不会效率低下。
设计缓存系统出了命中率之外还有一个很重要的东西就是有效期。你觉得缓存整个页面会导致有效期缩短,这是正确的想法,但是如果你的吞吐量巨大,一个有效期内可以有几千次命中,或者你一定程度上可以容忍脏读,例如五秒才刷新一次缓存,而你一秒钟有一千次访问,那即使只缓存五秒钟也是有意义的。
其实世界上最没有意义的事情是我要先设计一个缓存系统。在你无法决定缓存失效策略,无法预估出缓存命中率,连性能瓶颈都不知道的时候,做出来的缓存系统基本都是错的。
一个简单的商品列表,没有什么显著的性能瓶颈(譬如说某个属性需要大量的运算)的情况下,数据量才10000左右,一般来说根本不需要任何缓存系统,数据库自身的缓存就能保证足够的吞吐量了。如果某个属性存在明显的性能瓶颈需要大量运算才能得出,提前计算好这个属性就好了(这也是一种缓存方式)