mysql分页 redis_【数据库】redis怎样处理分页查询

我们都晓得,经由过程缓存查询的效果,能够极大的提拔体系的效劳才能,以及下落底层效劳或者是数据库的压力。关于有分页前提的缓存,我们也能够依据差别的分页前提来缓存多个key。

7abc6823bd2e4241a4c8f494a3d1dc4c.png

基于SortedSet的分页查询缓存计划

起首想到的处理方法是运用@see ListOperations不再依据分页前提运用多个key,而是运用一个key,也不分页将悉数的数据缓存到redis中,然后依据分页前提运用range(key,start,limit)猎取分页的效果。 (引荐进修:Redis视频教程)

这个会致使一个问题,当缓存失效时,并发的写缓存会致使涌现反复数据,所以想到经由过程运用set来处置惩罚并发时的反复数据,@see ZSetOperations

代码逻辑以下:

range(key,start,limit)依据分页前提猎取缓存,掷中则直接返回

缓存未掷中,查询(没有分页前提)数据库或是挪用(没有分页)底层接口

add(key,valueScoreMap)写入缓存,expire设置缓存时候

当须要清算缓存时,直接删除key,假如是因为数据新增和删除,能够add(key,value,score)或remove(key,value)

redis中会依据score分值升序分列map中的数据,平常的,score分值是sql语句的order by filedA的filedA的值,如许能保证数据一致性

然则这类体式格局也存在肯定问题:

这个key缓存的value确实是热数据,但大概只要少数数据被频仍运用其他的大概根本就未被运用,比方数据有100页,现实大概只会用到前10页,这也会致使缓存空间的糟蹋,假如运用了redis虚拟内存,也会有肯定影响

sql查询由本来的分页查询变成了不分页查询,缓存失效后,体系的处置惩罚才能较之前会有下落,尤其是关于大表

更多Redis相干技术文章,请接见Redis入门教程栏目举行进修!

以上就是redis怎样处理分页查询的细致内容,更多请关注ki4网别的相干文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值