redis分页数据的缓存策略

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

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

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

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

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值