我正在研究一个显示房地产信息的系统。它以角度运行,数据存储为服务器上的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新手,我不知道如何实现它!
非常感谢任何建议!
答案 0 :(得分:1)
你走在正确的轨道上;集合+排序集合是正确答案。
您可能想要的所有信息的两个来源:
这两个资源都使用Python作为编程语言,虽然第7章已经被翻译成Java:https://github.com/josiahcarlson/redis-in-action/(转到java路径查看代码)。
...也就是说,一个普通的关系数据库(特别是像Postgres这样的内置Geo处理数据库)应该可以轻松处理这些数据。你考虑过关系数据库吗?