client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // Redis 无密码
DB: 0, // 默认数据库
})
// 获取 zset 数据结构中排除指定成员后的所有数据
excludeMember := `{"id":"123","score":"101"}`
minScore := "-inf"
maxScore := "+inf"
limit := 10
result, err := client.ZRangeByScoreWithScores(context.Background(), "myzset", &redis.ZRangeBy{
Min: minScore,
Max: maxScore,
Offset: 0,
Count: int64(limit),
}).Result()
if err != nil {
// 处理错误
}
if len(result) == 0 {
// zset 数据结构为空,或者没有符合条件的数据
}
// 排除指定成员后的所有数据
var filteredResult []redis.Z
for _, data := range result {
member := data.Member
rank, err := client.ZRank(context.Background(), "myzset", member.(string)).Result()
if err != nil {
// 处理错误
}
if rank >= 0 && member != excludeMember {
filteredResult = append(filteredResult, data)
}
}
fmt.Println(filteredResult[0])
redis zset实现排除指定成员后的排序数据(golang)
于 2023-02-23 15:45:24 首次发布