我们写了三个数据到zset,分别用zRange($cachekey,0,-1,true)和zRange($cachekey,0,-1)输出如下:
咋一看貌似有问题,带withscores=true的排行榜排序貌似乱的,而不带withscores=true的排序是正确的。细心的小伙伴再看下,因为withscores=true后结果为map,关联数组,如果输出map则会按照map的key重新排序,所以看到的排序是无效的。而不带的则会按索引排,所以是正常的。这看起来是一个坑,其实就是一个大坑。排行榜实现时要特别注意。
如果要输出那就先json序列化处理一下,或者我们就不用withscores=true了自己遍历一下然后单独取zScore()取下榜单内的分数也行。
网友评论