我们最近在做一款跟陌陌类似的软件。由于数据库已经跟不上形势了,所以不得不加缓存。但是这里就出现一个疑惑了。
对于一般的APP来说,每一个人所看见的内容是一样的,这样将这些数据直接放到缓存里面就好了。但是比如陌陌。附近的人,每一个人所看见的附近的人是不一样的。每一个人所看见的数据都不一样,该如何加载缓存?还是管你一不一样,只要用户要看见,就把数据加载到缓存里面吗?总的就是说,像陌陌这样附近的人,如果是你来设计缓存策略,你该如何设计?????????
我们最近在做一款跟陌陌类似的软件。由于数据库已经跟不上形势了,所以不得不加缓存。但是这里就出现一个疑惑了。
对于一般的APP来说,每一个人所看见的内容是一样的,这样将这些数据直接放到缓存里面就好了。但是比如陌陌。附近的人,每一个人所看见的附近的人是不一样的。每一个人所看见的数据都不一样,该如何加载缓存?还是管你一不一样,只要用户要看见,就把数据加载到缓存里面吗?总的就是说,像陌陌这样附近的人,如果是你来设计缓存策略,你该如何设计?????????
先说说你理解的“缓存”到底是什么吧。
如果你觉得缓存是一个神奇的能加快程序运行的东西,那么我得给你提个醒,这个“神奇”是有成本的,而且你不一定付得起。
一般来说,当你决定使用缓存的时候,有几个点是你必须先考虑的.
1)数据对时效性不敏感.
2)性能瓶颈在于数据库的io上面
3)中间数据,并非最终数据
严格意义上说,附近的人本身对时效性是不敏感的.而且这些数据应该是属于中间数据,并非最终应该入库的.即使有一定的丢失,或者显示为空,应该也能接受是么?
在不考虑成本的情况下,可以直接丢缓存.但是对于缓存的利用率,以及命中率情况,就要以实际情况的调用情况来看.
如果本身附近的人,点击量本身就很小的情况下,是有可能不做缓存的.
缓存设计还得以你具体的业务情况来做考量.