gpt4 book ai didi

indexing - Redis中具有数百万行的字母索引

转载 作者:IT王子 更新时间:2023-10-29 05:59:44 25 4
gpt4 key购买 nike

对于我的应用程序,我需要一个包含数百万行的集合的字母索引。当我使用排序集并给所有成员相同的分数时,结果看起来很完美。性能也很好,测试集有 200 万行,最后三分之一的表现并不明显低于前三分之一。

但是,我需要查询这些结果。例如,获取前(最多)100 个以“goo”开头的项目。我玩过 zscan 和 sort,但它没有给我一个工作和高性能的结果。

由于 redis 在向有序集合中插入新成员时速度非常快,因此技术上必须能够立即(嗯,非常快)转到正确的内存位置。我想 redis 使用某种快速排序机制来实现这一点。但是.. 当我只想查询数据而不是写入数据时,我似乎得不到结果。

我们使用复制的奴隶进行读取操作,我们更喜欢(默认)只读配置开关。因此,创建一个虚拟 key 并在之后将其删除(无论多么不雅)并不是一个真正的选择。

我有点卡住了,我正在考虑在 redis-server 本身中编写一个 ZLEX 命令。我可以这样使用:

HELP "ZLEX" -> (ZLEX set score startswith) 
-- Query the lexicographical index of a sorted set, supplying a 'startswith' string.

127.0.0.1:12345> ZLEX myset 0 goo LIMIT 0 100

1) goo
2) goof
3) goons
4) goozer

你有什么想法?我是否遗漏了标准 Redis 命令中的某些内容?

我们在 Debian 上使用 Redis 2.8.4 x64。

亲切的问候,TW

编辑:

注意: Related issue: indexing-using-redis-sorted-sets -> 至少我给 ZLEX 起的名字似乎符合 Antirez' (Salvatore's) 的标准。截至 24-1-2014,我正在努力实现 ZLEX。对于这个用例,这似乎是最简单、最直接的解决方案,为了每个人的利益,Antirez 可以将它合并到主分支中。

最佳答案

我已经实现了 ZLEX

这里是完整的 specs .您可以从这里获取新功能:github tw-bert

我还向 Antirez 发布了拉取请求 here .

亲切的问候,TW

关于indexing - Redis中具有数百万行的字母索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com