ZRANK
返回有序集中指定成员的排名,按分数值递增(从小到大)顺序排列。
ZREVRANK就是从大到小排序,其他与ZRANK没区别,不再做记录
Command
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> zadd salary 100 Tom 200 Lily 300 Paul 400 Jesse
(integer) 4
127.0.0.1:6379> zrank salary Tom
(integer) 0
127.0.0.1:6379> zrank salary Lily
(integer) 1
127.0.0.1:6379> zrank salary Paul
(integer) 2
127.0.0.1:6379> zrank salary Jesse
(integer) 3
127.0.0.1:6379> zrank salary fakeMember
(nil)
127.0.0.1:6379> EXISTS fakeSortedSetKey
(integer) 0
127.0.0.1:6379> zrank fakeSortedSetKey fakeMember
(nil)
Code
func zrank(c redis.Conn) {
defer c.Do("DEL", "salary")
c.Do("ZADD", "salary", 100, "Tom", 200, "Lily", 300, "Paul", 400, "Jesse")
rank, _ := c.Do("ZRANK", "salary", "Tom")
fmt.Println("Tom's rank is:", rank)
rank, _ = c.Do("ZRANK", "salary", "Lily")
fmt.Println("Lily's rank is:", rank)
rank, _ = c.Do("ZRANK", "salary", "Paul")
fmt.Println("Paul's rank is:", rank)
rank, _ = c.Do("ZRANK", "salary", "Jesse")
fmt.Println("Jesse's rank is:", rank)
// If specified member doesn't exist, returns nil.
nilScore, _ := c.Do("ZRANK", "salary", "fakeMember")
fmt.Println("If specified member doesn't exist, returns", nilScore)
// If key doesn't exist, returns nil.
isExist, _ := c.Do("EXISTS", "fakeSortedSetKey")
if isExist == 1 {
c.Do("DEL", "fakeSortedSetKey")
}
nilScore, _ = c.Do("ZRANK", "fakeSortedSetKey", "fakeMember")
fmt.Println("If key doesn't exist, returns", nilScore)
}
Output
$ go run main.go
Tom's rank is: 0
Lily's rank is: 1
Paul's rank is: 2
Jesse's rank is: 3
If specified member doesn't exist, returns <nil>
If key doesn't exist, returns <nil>
网友评论