前两天倒腾redis的有序集合时,自己发现了一个问题,redis的有序集合在score相同的情况 下是如何排序的?
通过谷歌搜索,发现了一些线索,在score相同的情况下,redis使用字典排序,不过不是太明白什么是字典排序(这就是非科班出生的悲哀),于是自己测试了一下,相信下面的截图就能回答这个问题了:
![](https://img-blog.csdn.net/20150922233412127?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在score相同的情况下,redis使用字典排序,而所谓的字典排序其实就是“ABCDEFG”这样的排序,在首字母相同的情况下,redis会再比较后面的字母,还是按照字典排序(如截图所示,beigai和baijing的排列顺序)。
当然,还有一个问题没有解决,那便是,如果需求是希望在score相同的情况下,不是按照redis的默认规则,而是我们自己定义排序规则(比如按时间排序),这种情况该怎么做呢?