redis实现分页查询的方法-创新互联
这期内容当中小编将会给大家带来有关redis实现分页查询的方法,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
基于SortedSet的分页查询缓存方案
首先想到的解决方法是使用@see ListOperations
这个会导致一个问题,当缓存失效时,并发的写缓存会导致出现重复数据,所以想到通过使用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实现分页查询的方法了,如果您也有类似的疑惑,不妨参照上述方法进行尝试。如果想了解更多相关内容,请关注创新互联行业资讯。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:redis实现分页查询的方法-创新互联
标题网址:http://ybzwz.com/article/jddps.html