我们在项目中常常需要缓存需要分页的数据,有如下几种思路,我们来对比一下各自优劣
几种思路:
- 每页数据分别使用一个key缓存,各自设置过期时间,在数据请求时且缓存中没有时进行初始化,pageIndex和pageSize作为缓存key的一部分,比如:
key:cstm:list:${pageIndex}_${pageSize}
value:序列化(List<Customer>)
- 每页数据分别使用一个key缓存,在数据有更新时,主动更新所有页的数据,pageIndex和pageSize作为缓存key的一部分,比如:
value:序列化(List<Customer>)
- 使用有序集合缓存热点数据,排序条件作为分数,使用命令【ZRANGE key start stop [WITHSCORES]】