我正在使用redis存储每个散列中约100k条记录。我想要在给定的散列内实现筛选(分面)。请注意,一个散列条目可以属于n个过滤器。
阅读this和this后,看起来我应该:
假设方法是正确的,我缺少的部分是什么是检索HASH条目的最有效实现方式?我是否正确地认为,一旦我拥有了HASH键,我应该使用PIPELINE来排队多个HGETALL命令通过每个HASH键?是否有更好的方法?
我对使用PIPELINE的担忧是,我认为它会在服务命令时阻止所有其他客户端。我将使用每页500个结果进行分页筛选,有多个基于浏览器的客户端执行过滤操作,更不用说填充SET和HASH的后端进程,如果PIPELINE会阻塞,那么存在很大的竞争潜力。是否有人可以提供一些看法?
如果有帮助的话,我正在使用2.2.4 redis,predis用于Web客户端,servicestack用于后端。
谢谢, 保罗
阅读this和this后,看起来我应该:
- 每个过滤器实现一个排序的SET。 SET中的值对应于HASH中的键。
- 从给定的过滤器SET中检索HASH键。
- 一旦我从SET中获取了HASH键,就从HASH中获取相应的条目。这将为我提供所有属于过滤器的条目。
假设方法是正确的,我缺少的部分是什么是检索HASH条目的最有效实现方式?我是否正确地认为,一旦我拥有了HASH键,我应该使用PIPELINE来排队多个HGETALL命令通过每个HASH键?是否有更好的方法?
我对使用PIPELINE的担忧是,我认为它会在服务命令时阻止所有其他客户端。我将使用每页500个结果进行分页筛选,有多个基于浏览器的客户端执行过滤操作,更不用说填充SET和HASH的后端进程,如果PIPELINE会阻塞,那么存在很大的竞争潜力。是否有人可以提供一些看法?
如果有帮助的话,我正在使用2.2.4 redis,predis用于Web客户端,servicestack用于后端。
谢谢, 保罗