redis分页数据的缓存策略

来源:互联网 发布:数据化分析 编辑:程序博客网 时间:2024/06/01 13:14

 对于分页数据的缓存问题,该如何处理呢?

  1.以分页的索引为Key,缓存整个页面的数据。对于已经加载过的页面,可以根据Key直接从缓存中取出即可(采用相对时间缓存的策略,即数据在之后的某一时间段内未被访问,则从缓存中清除)。

  2.保持上述缓存策略不变,但添加了对添加,修改和删除操作的处理。首先我们要保存下最近一次访问的页号,当用户执行Update操作时,根据该页号删除对应页的缓存,对于Delete,要删除对应页及对应页之后的缓存。由于新Add的数据总是出现在首页,所以Add操作时要移除所有分页的缓存。经过测试,这种做法能避免脏数据及数据重复的问题。

  3.不要缓存整页的数据,要分条存取。每次我们只从数据库获取分页数据对应的Id序列,然后根据再根据这些Id从service中获取(缓存策略在service中实现)。细粒度的缓存能更好的解决脏数据的问题。况且,获取Id序列的相应速度要远大于model序列的。对于高密度访问的情况,对应的缓存可以保存更长的时间,这缓存中就会保存大部分访问过的数据,只有少数的数据需要从数据库中获取,这样更能体现出缓存的优势。

 


0 1
原创粉丝点击