想问一下大家在对列表缓存数据的时候是怎么做的缓存
首先明确一点:
是不是必须显示全部数据?
如果是必须的,即使分出几万页也可以接受,那么你要想办法去实现这个效果。
场景分析:
如果你有30万信息,并且使用Mysql,那么你可以考虑一下以下几种方式:
1.通过页面缓存或者干脆生成HTML静态页的方式来实现,但是这样会产生很多的缓存文件,同时访问量很大的情况下磁盘的IO会进入瓶颈然后宕机。
2.通过SQLite数据库作缓存数据库,并且用SQL语句的MD5值作为表名,这样你可以实现复杂的分页操作,同时你运算的数据源是你缓存的结果集。
3.通过第三方K-V模块来实现对结果集的缓存
如果显示全部数据不是必须的,那你考虑的范围只是如何显示的更精准,而非更多,用户在更多和更精准之间往往选择后者。
一般使用yii\filters\PageCache
来做分页缓存控制。