如果数据库已经存在,还值得使用Bloom过滤器吗?

问题描述 投票:0回答:1

我读过一些地方,一些数据库在查询数据库时使用bloom过滤器来查找匹配项。在我的示例中,我使用的是Postgresql数据库之一。

我的问题是谈论使用Redis实现布隆过滤器,该模块具有一个允许您在集合中输入成员时使用布隆过滤器的模块。 (但是请记住查找过程的复杂性,而不是从磁盘中检索该值)

现在,使用Redis的好处是将值存储在内存中,这比尝试在rdbms中查找值要好得多,因为该值存储在磁盘上。

在我的示例中,说我正在检查用户名是否已存在,是否仍然值得在带有Bloom过滤器的内存解决方案中使用Redis而不是仅通过Postgresql查询进行检查?

我的流程类似于:CheckIfUserExsits() // using Redis bloom filterIf TRUE then confirm with rdbms // do to x% probability of false positive nature of bloom filterIf rdbms == MATCH then reply with "User does exist"Else don't check rdbms at all // do to 0% probability of false negative nature of bloom filter

此流应该更高级,因为您不是在查询rdbms,而是通过更有效地返回false的内存查找来快速执行此操作。

然而,我只关心成员是否存在,为提高在回复false时的性能,Redis步骤真的有帮助吗?因为如果Postgresql已经使用bloom过滤器查询表,那么性能应该已经相对较快。

我读过一些地方,一些数据库在查询数据库时使用bloom过滤器来查找匹配项。在我的示例中,我使用的是这些数据库之一的Postgresql。我的问题...

postgresql design-patterns redis rdbms
1个回答
1
投票

除非您确实遇到性能问题,否则请不要添加Redis。它增加了第二个数据存储,开发速度将大大减慢,并会发现更多错误,因为每个数据更改都需要在两者之间进行同步。

© www.soinside.com 2019 - 2024. All rights reserved.