gpt4 book ai didi

relational-database - 在 Redis 和/或关系数据库中存储数据

转载 作者:IT王子 更新时间:2023-10-29 06:03:12 30 4
gpt4 key购买 nike

我在 Redis 中存储了大约 50,000 个 json 对象。这适用于通过唯一键查找对象的主要用例。

我现在必须添加一个功能来根据基于对象数据的复杂查询来搜索对象。例如,在 2011 年 3 月 1 日至 2012 年 1 月 12 日之间发布的所有作者为“lex”的商品,库存超过 5 件。

使用 SQL 这很简单。我不太了解 Redis,但还没有看到类似这样的东西。

所以我想拥有一个小型关系数据库,用于存储 Redis 键和我需要搜索的数据。当需要一个复杂的查询时,我点击 SQL 并获得一组从 Redis 中提取的键。

我拥有的数据很少更改,我会知道更改的时间和内容。所以我可以在更新时将数据导入 rmdb 和 Redis。

这种方法是个好主意吗?

最佳答案

查询是动态的吗?因为您可以在 Redis 中构建结构,所以可以像您描述的那样进行查询。例如,对时间使用有序集,为库存编号使用另一个有序集,查询并相交。如果你确切地知道你想要运行什么搜索,你可以让 Redis 为你做的非常快。如果查询一直在变化(玩弄数据、分析数据等),那么这不是一个很好的解决方案。

所以为了存储东西

set key object1

zadd time_set object1.time object1
zadd inventory_set object1.inventory object1

查询时间和库存

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...

一般来说,当您确切知道将在其上运行哪些查询时,Redis 会非常有效。

关于relational-database - 在 Redis 和/或关系数据库中存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379551/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com