我正在尝试确定跟踪重复列表的方式。
目前我有不应重复的字符串示例
superduper duplicate 333
superduper duplicate 555
superduper 557
我想跟踪“superduper duplicate”333与555相同。一旦找到重复,我只需要同时跟踪333和555,并且可以找到超过2个重复项。
每个项目都有一个ID号,用于识别找到的副本。
如果我使用排序列表或Set,我无法轻松地将id字段与字符串一起存储。
如果我使用列表,则无法存储id字段。
我没有考虑得分。
我正在使用多线程程序,所以我不能依赖于插入顺序。
任何有助于我在Redis中存储此信息的结构的想法。
答案 0 :(得分:0)
这是我提出的解决方案。我向所有有更好主意的人开放。
我有一个重复列表,它是一个得分(zset),用于存储该字符串的字符串和id。
Duplicates (zset)
- "superduper duplicate" 333
- "superduper duplicate" 555 *wouldn't be added but here for example purposes
- "testing" 123
- "tester" 101
- "testing" 999 *wouldn't be added but here for example purposes
然后我将重复信息存储在另一个列表中
DuplicatesListId (Set)
- 333
- 123
然后我创造&保留所有ID的列表,其中包含额外的映射重复ID。
DuplicateId:333 (Set)
- 555
DuplicateId:123 (Set)
- 999
这允许我查找并获取DuplicatesListId中的所有项目,然后使用特定密钥获取每个重复信息,因为我不知道最初重复的ID。 "重复" (zset)列表是临时的,用于跟踪重复列表中的哪些项目以及它的相应ID。