我有一个集合,其中每个Foo都映射到一个Bar,每个Bar都映射到一个Foo。我需要能够查找给定Bar对应的Foo,并查找给定Foo对应的Bar。
为了做到这一点,目前,我创建了两个哈希表,在每次插入时,我执行2个HSET,一个在每个哈希表上:
然而,我对这个解决方案并不完全满意。在我使用它的应用程序中,空间限制比速度限制更重要,因此我希望只有一个数据结构,而不是两个,即使这意味着查找更昂贵(在合理范围内)。
在Redis中实现双向哈希映射是否有更好的方法?
为了做到这一点,目前,我创建了两个哈希表,在每次插入时,我执行2个HSET,一个在每个哈希表上:
HSET fooToBar foo1 bar1
HSET barToFoo bar1 foo1
此后,在任何方向上进行查找都变得非常容易:
//Look up bar given a foo
HGET fooToBar foo1
//Look up foo given a bar
HGET barToFoo bar1
然而,我对这个解决方案并不完全满意。在我使用它的应用程序中,空间限制比速度限制更重要,因此我希望只有一个数据结构,而不是两个,即使这意味着查找更昂贵(在合理范围内)。
在Redis中实现双向哈希映射是否有更好的方法?