Redis 中 SortSet 使用不当导致的分页 Bug!

本文讲述了由于Redis的ZREVRANGEBYSCORE命令使用不当导致的分页Bug,具体表现为在同一秒内有多条评论时,下拉刷新获取到重复数据。解决方案包括保证lastScore唯一或使用lastScore+limit组合进行分页,以及利用SortSet和Hash结构实现分页和排序。
摘要由CSDN通过智能技术生成

最近我们的电商系统中在大促时出现了一个分页 Bug,问题产生的原因就是 Redis 的 ZREVRANGEBYSCORE 指令使用不当导致的。表现在 java 代码中就是 zrangeByScoreWithScores 方法使用不当。本文来说说这个 Sorted Set 有序集合实现分页产生的 Bug 问题。

首先,我们线上的电商系统正在进行一个大促活动。买家非常的多,导致一时间产生了非常多的评论。开发人员在存储(保存)评论时,使用 Redis 中的 SortSet 这个数据结构。每新增一条评论,他都通过 zadd 命令将起保存至 Redis 和 MySQL 中,查询时直接在 Redis 中取出来。代码抽象一下,如下所示:

640

顺便说一下,System.currentTimeMillis() 是毫秒,System.currentTimeMillis() / 1000 就相当于精确到秒。

这个活动是大促&

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值