【发布时间】:2018-07-17 05:44:19
【问题描述】:
我有一个应用程序,我在 Redis 中存储了数百万个密钥,格式如下:
Type+#+Year+#+MachineType+#+City+#+State+#+Country+#+Size
Sample_Key Value
Retail#2017#MachineA#SanFrancisco#CA#USA#500 1000
Bulk#2017#MachineB#NewYorkCity#NY#USA#1000 100000
Retail#2017#MachineA#NewYorkCity#NY#USA#1000 5000
我的客户会进来并想要一个特定的值或一组值聚合,比如说,加利福尼亚州旧金山和纽约州纽约的所有东西,以获得 1000 和 5000(然后我们会执行一些聚合在上面)。什么 Redis 函数最适合说:“给我包含旧金山或纽约的键的所有值”,或“给我所有大小为 1000 的商店的键”,或任何此类组合。
我需要获取所有这些值,将它们聚合并以(理想情况下)毫秒级延迟提供出来。
我查看了KEYS,他们说 NOT 在生产中使用(另外,我从来没有完全弄清楚如何获得两个(或可能更多)城市/其他组合的值) .我查过SCAN,但基于光标,它可能不是最好的解决方案。我所看过的任何其他内容都无法以快速简便的方式完全涵盖我所描述的场景。帮忙?
【问题讨论】: