使用多个过滤器创建可行的Redis商店

时间:2013-09-18 18:41:56

标签: redis

我正在研究一个显示房地产信息的系统。它以角度运行,数据存储为服务器上的json文件,每天更新一次。

我有关于房间数量,浴室,价格和地址的自由文本字段的过滤器。这一切都非常活泼,但问题是应用程序的加载时间。这就是我正在看Redis的原因。麻烦的是,我无法理解如何通过运行几个不同的过滤器来获取数据。

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

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

等...

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

beds  id
2     1
3     0
4     2

和价格相同:

price   id
130000  1
270000  0    
420000  2

然后我想我可以使用SINTER返回重叠集。 假设我找的房子超过2间卧室,不到300000间。

从卧室套餐我得到ID为0,2的床> 2.

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

因此公共id为0,然后我将在主数据集中查找。

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

非常感谢任何建议!

1 个答案:

答案 0 :(得分:1)

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

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

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

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