如何尽可能少的占用缓存资源 Redis

当网站访问量很大时,查询内容都去查询数据库的话,数据库的压力是难以承受的,为了解决这个问题就要引入缓存了,即使用Redis做缓存。但是引入缓存又有一个问题需要考虑,那就是缓存资源是非常有限的,如果我们把大量的内容信息都放到缓存当中的话,缓存的压力是非常大的。我们知道,内容是分热点内容和冷门内容的,热点内容的访问量很大,但是冷门内容可能十天半月也没有人访问,因此存储热门内容信息才能提高缓存的利用率。那么我们怎么能尽可能少的占用缓存资源呢?这里有两种解决方案,第一种方案是利用Redis的访问量统计功能并利用其zset数据类型进行访问量排序(抱歉!我不明白这种方案),把访问量高的内容详情添加到缓存当中,这种方案比较麻烦,我们不建议采用这种方式。第二种方案是设置缓存的过期时间,用户只要点击查看内容详情,我们一律都先存放到缓存当中,但是我们要设置一下该条内容的缓存时间(比如半天或一天或其它,一般是一天的时间,可以根据实际情况而定),到期后该内容的缓存就会被删除掉,如果该内容是热门内容的话,用户再次查看内容详情的时候就又会向缓存中添加该内容的缓存信息,如果该商品是冷门内容,过期后缓存中便没有该内容的缓存信息了(直到有下一位用户查看该内容的详情信息),这样就可以节约缓存的空间,而且这种方式无疑是提高缓存利用率最简单的方法了。

我们都知道,缓存可以提高查询性能,但是当用户访问量很大时,单纯依靠缓存已经不行了,为什么这么说呢?这是因为我们在访问内容详情的时候由于每款内容都不一样,因此每款内容的详情页都是动态生成的,每查看一次,页面就要重新渲染一次,渲染的过程是消耗时间的,当用户访问量很大时,这便在一定程度上降低了系统性能。那么怎么解决这个问题呢?这便引出了我们今天要学习的内容——网页静态化,所谓网页静态化,是指我们根据一定的模板,事先把要展示的页面生成静态页面,存放到服务器中,当用户访问某商品详情页时便可以直接从服务器获取相应的静态页面,不用再重新渲染,这就在很大程度上提升了系统性能。
那么用什么技术来实现网页静态化呢?目前常用的两种技术是volocity和freemarker,其中最流行的freemarker。

猜你喜欢

转载自blog.csdn.net/qq_32534441/article/details/87690966