我有一大串字符串(包含用戶名,約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,但這不是詞典不可知的。 –