聊聊项目中的缓存-2022新项目
Web项目开发中,缓存一般都是少不了的,可以用来做各种事情,比如保存用户信息,提升数据库访问的效率,
用来加锁,等等。以前参与开发的项目中大多都是用来做这几件事情。当前参与开发的项目中,也在大量的使用
Redis缓存,不过缓存方式和之前的一些用法稍稍有些不同。下面就分开讲解当前项目中,各种缓存的真实使用场景。
.一.存储字典表数据:
字典表数据是在项目中会被高频访问的数据,比如页面中使用的各种类型,像男女性别等等。不管是在页面中新增数据
时,还是在列表查询的时候,翻译查询的数据,会用到字典表。包括后台在做处理的时候,对各种类型的数据进行校验等等,
也会使用到字典表的数据。这时候对所有的字典表的数据做缓存,就很有必要了,因为这些数据被频繁的访问,存放在redis
中之后,可以大大地提高访问效率。
.二.项目当中某个主表的数据。
项目当中的一个主表,在进行增、删、改、查的操作时,或者是在对与主表相关联的一系列的表进行新增、修改操作时,
都会访问主表中的数据,比如判断某条数据是否存在。因此也需要高频率访问主表中的数据,这时候将主表中的数据缓存在
Redis中则很有必要。并且在缓存的时候,会根据不同的方式进行缓存,比如根据主键ID缓存,比如根据编号
缓存等等。首先是启动的时候缓存一次,之后缓存是使用一个定时任务去缓存,这样可以保证数据的有效性。
.三.首页的数据查询.
目前参与开发的这个项目首页的访问频率比较高,并且首页有很多的查询,如果同时有大量的查询进入,都去查询数据库
的话,那么效率将会变得非常低。因此我们的架构为首页构建了各种缓存,让首页查询的效率大大提高。比如主表查询的方式
是按照时间,类型来查询,排序方式是按照降序还是升序,都全部构建在缓存中了,这个数据可以考虑使用redis的list来进行
构建。包括在数据过滤的时候,需要将一些数据同时放入缓存中,以便快速获取然后进行处理。有的数据存储
的时候是使用hash()存储,这个是学到的新东西。
.四.需要定时任务处理的一些数据
有些数据是需要开启定时任务去定时处理的,这时候也可以将数据放在缓存中,不然时时从数据库中取,会非常消耗性能。
以上就是自己目前了解到的在真实项目中,哪些地方需要使用缓存的方式。如果各位小伙伴有更好的使用建议,欢迎留言。