我的网站想做一个按商品点击率进行排行的排行榜,
可是现在遇到一个问题就是怎么样保存每件商品的点击率
我想了几种方案,请大家给点意见,如果有更好的方法,将感激不尽。 一,建一张专门记录客户端访问信息的表,每点击一次增加一条记录,记下访问时间和商品的ID。
二,用cache或者application来缓存,然后达到一定数量后一次性更新到数据库中。
三,将访问量保存在XML文件中,每隔一段时间更新到数据库中。(似乎不可取,XML数据量太大的时候访问很慢)那么cache具体怎么使用呢?和Application有什么区别吗?如果服务器档掉了重起了,cache中的数据也会没有吗?
有人能详细解释一下吗?或者给个相关的网址也行。还有一个问题就是 cache和application 一般能缓存多少数据才不会对服务器造成太大的影响呢?
可是现在遇到一个问题就是怎么样保存每件商品的点击率
我想了几种方案,请大家给点意见,如果有更好的方法,将感激不尽。 一,建一张专门记录客户端访问信息的表,每点击一次增加一条记录,记下访问时间和商品的ID。
二,用cache或者application来缓存,然后达到一定数量后一次性更新到数据库中。
三,将访问量保存在XML文件中,每隔一段时间更新到数据库中。(似乎不可取,XML数据量太大的时候访问很慢)那么cache具体怎么使用呢?和Application有什么区别吗?如果服务器档掉了重起了,cache中的数据也会没有吗?
有人能详细解释一下吗?或者给个相关的网址也行。还有一个问题就是 cache和application 一般能缓存多少数据才不会对服务器造成太大的影响呢?
如果你认为缓存的意思就是“暂时存在内存,过会儿存到数据库”就是非常有害的想法了。缓存的意思是对数据库中的业务数据保存内存中的暂存版本,并且尽量保证数据一致。因此,放入Cache的数据,必须同时放入数据库中。如果你觉得正常地使用缓存是多余地,那么你就不要使用缓存。不用要比乱用带来的对信息管理的失误要小。
虽然可能回答你这个问题过早,不是还是简单回答一下。数据缓存编程的关键是懂得设置各种依赖项。知道缓存是内存中保存数据,这等于不知道asp.net缓存技术。缓存编程的关键是你懂得让应该失效的缓存数据尽早失效。学会设置了依赖项之后,你才可以大量使用缓存。即使你不设置依赖项,或者设置的依赖项很“迟钝”,asp.net的Cache也会在内部不断地“复审”内存空间的状态,它会根据内存的大小自动计算出合适的缓存大小,然后(时不时地)自动移除一批最近不用的缓存数据,直到空间足够富余出它需要的大小。