Cog*_*ave 2 relational-database redis
我有大约50,000个json对象,我存储在Redis中.这适用于通过其唯一键查找对象的主要用例.
我现在必须添加一个功能,以根据基于对象数据的复杂查询来搜索对象.例如,2011-03-01和2012-01-12之间发布的所有具有"lex"作者的项目,库存超过5个.
使用SQL这很简单.我不太了解Redis,但没有看到任何类似的东西.
所以我想有一个小的关系数据库,我将存储Redis密钥和我需要搜索的数据.当需要一个复杂的查询时,我点击了SQL并得到了一组用于拉出Redis的密钥.
我不经常更改的数据,我会知道何时以及发生了什么变化.所以我可以在更新时将数据导入到rmdb和Redis中.
这种方法是个好主意吗?
小智 5
查询是否动态?因为您可以在Redis中构建结构,就像您描述的那样进行查询.例如,使用有序集合作为时间,为库存数量设置另一个有序集合,查询并交叉它们.如果你很清楚你想要运行什么搜索,你可以让Redis为你做得非常快.如果查询一直在变化(与数据进行标记,分析数据等),那么这不是一个非常好的解决方案.
所以存储东西
set key object1
zadd time_set object1.time object1
zadd inventory_set object1.inventory object1
Run Code Online (Sandbox Code Playgroud)
查询时间和库存
zrangebyscore time_set min_time max_time
zrangebyscore inventory_set min_inventory max_inventory
Then you intersect them yourself, since results are just ids this is really fast. Once you intersected them just do an
mget item1, item 2...
Run Code Online (Sandbox Code Playgroud)
一般来说,当您确切地知道将在其上运行哪些查询时,Redis的工作非常好.
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |