feat: 增加 ZRangeByScore ZRemRangeByScore ZRangeAndRemByScore

This commit is contained in:
2026-04-13 16:26:18 +08:00
parent beae868232
commit 2adbe2bcd3
3 changed files with 24 additions and 1 deletions

2
go.mod
View File

@@ -5,7 +5,7 @@ go 1.24.0
toolchain go1.24.2 toolchain go1.24.2
require ( require (
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260127050054-349cdcde813a git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260413082525-fb90982b1256
git.zhangdeman.cn/zhangdeman/util v0.0.0-20260105024213-3d76b1bcde5a git.zhangdeman.cn/zhangdeman/util v0.0.0-20260105024213-3d76b1bcde5a
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20260321023345-6c6e467e3a14 git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20260321023345-6c6e467e3a14
github.com/go-redis/redismock/v9 v9.2.0 github.com/go-redis/redismock/v9 v9.2.0

2
go.sum
View File

@@ -1,5 +1,7 @@
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260127050054-349cdcde813a h1:4apFwfRDdGBkSybcLWzjIYjz8i6yR28Wyt7iBK3K+Po= git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260127050054-349cdcde813a h1:4apFwfRDdGBkSybcLWzjIYjz8i6yR28Wyt7iBK3K+Po=
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260127050054-349cdcde813a/go.mod h1:5p8CEKGBxi7qPtTXDI3HDmqKAfIm5i/aBWdrbkbdNjc= git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260127050054-349cdcde813a/go.mod h1:5p8CEKGBxi7qPtTXDI3HDmqKAfIm5i/aBWdrbkbdNjc=
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260413082525-fb90982b1256 h1:zYkRoH86j+4BoVGCWUY6zA+FIQNmul/c8whmmYK3bT4=
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20260413082525-fb90982b1256/go.mod h1:5p8CEKGBxi7qPtTXDI3HDmqKAfIm5i/aBWdrbkbdNjc=
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42 h1:VjYrb4adud7FHeiYS9XA0B/tOaJjfRejzQAlwimrrDc= git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42 h1:VjYrb4adud7FHeiYS9XA0B/tOaJjfRejzQAlwimrrDc=
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42/go.mod h1:VHb9qmhaPDAQDcS6vUiDCamYjZ4R5lD1XtVsh55KsMI= git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42/go.mod h1:VHb9qmhaPDAQDcS6vUiDCamYjZ4R5lD1XtVsh55KsMI=
git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20260112135254-c9ba29f9f674 h1:75JJ09HPqWi9qm7XD+vV6p5TaCMQgDsae/EbsLiE1t4= git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20260112135254-c9ba29f9f674 h1:75JJ09HPqWi9qm7XD+vV6p5TaCMQgDsae/EbsLiE1t4=

View File

@@ -111,3 +111,24 @@ func (w *wrapper) BLPop(ctx context.Context, instanceFlag string, key []string,
paramList = append(paramList, timeout) paramList = append(paramList, timeout)
return Client.Exec(ctx, instanceFlag, consts.RedisCommandBlpop, paramList...) return Client.Exec(ctx, instanceFlag, consts.RedisCommandBlpop, paramList...)
} }
// ZRangeByScore 按分值获取数据
func (w *wrapper) ZRangeByScore(ctx context.Context, instanceFlag string, key string, startScore int64, endScore int64) *define.RedisResult {
return Client.Exec(ctx, instanceFlag, consts.RedisCommandZrangeByScore, key, startScore, endScore, "WITHSCORES")
}
// ZRemRangeByScore 删除集合中分值区间的数据
func (w *wrapper) ZRemRangeByScore(ctx context.Context, instanceFlag string, key string, startScore int64, endScore int64) *define.RedisResult {
return Client.Exec(ctx, instanceFlag, consts.RedisCommandZRemRangeByScore, key, startScore, endScore)
}
// ZRangeAndRemByScore 获取集合到期数据并删除
// 本质: ZRange + ZRemRangeByScore
func (w *wrapper) ZRangeAndRemByScore(ctx context.Context, instanceFlag string, key string, startScore int64, endScore int64) *define.RedisResult {
rangeRes := w.ZRangeByScore(ctx, instanceFlag, key, startScore, endScore)
if nil == rangeRes.Err {
// 读取成功, 删除
w.ZRemRangeByScore(ctx, instanceFlag, key, startScore, endScore)
}
return rangeRes
}