From 17e08a16f4082fed2364a7cd469376da007f6e6b Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 9 Oct 2021 04:54:48 -0700 Subject: [PATCH] fix redis3 deletion --- weed/filer/redis3/ItemList.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/weed/filer/redis3/ItemList.go b/weed/filer/redis3/ItemList.go index 9f84d57f6..af3b8ae5a 100644 --- a/weed/filer/redis3/ItemList.go +++ b/weed/filer/redis3/ItemList.go @@ -381,6 +381,9 @@ func (nl *ItemList) NodeContainsItem(node *skiplist.SkipListElementReference, it } func (nl *ItemList) NodeSize(node *skiplist.SkipListElementReference) int { + if node == nil { + return 0 + } key := fmt.Sprintf("%s%dm", nl.prefix, node.ElementPointer) return int(nl.client.ZLexCount(context.Background(), key, "-", "+").Val()) } @@ -413,9 +416,14 @@ func (nl *ItemList) NodeInnerPosition(node *skiplist.SkipListElementReference, n func (nl *ItemList) NodeMin(node *skiplist.SkipListElementReference) string { key := fmt.Sprintf("%s%dm", nl.prefix, node.ElementPointer) - slice := nl.client.ZPopMin(context.Background(), key).Val() + slice := nl.client.ZRangeByLex(context.Background(), key, &redis.ZRangeBy{ + Min: "-", + Max: "+", + Offset: 0, + Count: 1, + }).Val() if len(slice) > 0 { - s := slice[0].Member.(string) + s := slice[0] return s } return ""