0

我正在开发一个系统来显示有关房地产的信息。它以角度运行,数据以 json 文件形式存储在服务器上,每天更新一次。

我有卧室数量、浴室数量、价格和地址的自由文本字段的过滤器。这一切都非常快,但问题是应用程序的加载时间。这就是我关注 Redis 的原因。麻烦的是,我只是不知道如何通过运行多个不同的过滤器来获取数据。

假设我有一些这样的数据:(为简单起见,遗漏了很多字段)

id  beds  price
0   3     270000
1   2     130000
2   4     420000

ETC...

我想我可以设置三组,一组用于保存整个数据集,一组用于创建卧室索引,另一组用于价格:

beds  id
2     1
3     0
4     2

价格也一样:

price   id
130000  1
270000  0    
420000  2

然后我想我可以使用 SINTER 返回重叠集。假设我要找一套2间卧室以上的房子,价格低于300000。

从卧室集中,我得到 ID 为 0,2 的床 > 2。

从价格设置中,我得到价格 < 300000 的 ID 0,1

所以公共 id 是 0,然后我会在主数据集中查找。

理论上这一切听起来不错,但作为 Redis 新手,我不知道如何实现它!

任何建议将不胜感激!

4

1 回答 1

1

你在正确的轨道上;集+排序集是正确的答案。

您可能想要的所有信息的两个来源:

这两个资源都使用 Python 作为编程语言,尽管第 7 章已翻译成 Java:https ://github.com/josiahcarlson/redis-in-action/ (转到 java 路径查看代码)。

...也就是说,一个普通的关系数据库(尤其是像 Postgres 这样具有内置地理处理功能的数据库)应该可以轻松处理这些数据。你考虑过关系数据库吗?

于 2013-09-20T07:41:25.093 回答