我有一大串字符串(包含用户名,约350K记录)。我需要按照字典顺序进行排序,并且应该能够有效地检索成员存在*和成员相似度**。 Redis排序集看起来像作业的数据类型。在redis排序集合中,案例不可知的字典排序
但是,我似乎在第一个障碍。具体而言,我的一个关键要求是将不同的信件集合在一起,只要它们以相同的字母开头。例如。应该最终并排订购Bender
和bender
。但是,redis的排序集在遵循词典排序规则时是严格的,因此所有以大写字母开头的字符串在所有以小写字母开头的字符串(例如Z
在a
之前,但在A
之后排序)之前都被排序。
有什么办法可以解决这个问题,仍然使用redis排序集来满足我的要求吗?仅供参考,我使用redis 2.8.4版。提前致谢。
*成员存在:一个用户名,检查它是否已经存在于存储的设定
**成员相似:一个用户名,拉N个存储的用户名是最喜欢的给定用户名
请参阅[正常化大小写和重音字符串](https://redis.io/topics/indexes#normalizing-strings-for-case-and-accents) – thepirat000
@ thepirat000:这是一篇很棒的文章。唯一的问题是它利用了不适用于redis 2.8.4的ZRANGEBYLEX。我可以实现相同的早期版本:http://oldblog.antirez.com/post/autocomplete-with-redis.html,但这不是词典不可知的。 –