Redis缓存关系数据的正确策略

时间:2015-06-18 18:46:08

标签: caching join redis

我们有以下用例示例:

我们有用户,商店,朋友(用户之间的关系)和喜欢。我们将这些表存储在MySQL中,并作为Redis中的键值存储,以便从Redis缓存中读取而不是访问数据库。写入两个数据存储。 因此,我们的应用程序非常快速且可扩展,因为我们很少访问数据库进行读取。我们使用AWS来实现可扩展的Redis。 但是,当用户登录时我们遇到问题,我们必须显示商店列表,以及他的哪些朋友喜欢该商店。这是一个连接,Redis不直接支持连接。我们想知道存储和显示这些数据的最佳方法是什么。例如:如果这应该存储在Redis表中,其中键值为“store / user_who likes”并且每次写入都有,或者可能有一个每小时的cron构造它。然后我们可以读取已经存储的数据,或者我们应该按需构建这个连接? 我们注意到Facebook甚至都没有实时更新这些信息,而是让朋友看几分钟我的朋友喜欢我们共同的页面。 提前感谢任何回复。

1 个答案:

答案 0 :(得分:1)

取决于它对你的重要性。为什么不将每个人的朋友存储为一组,每个商店都喜欢作为一组,然后当你需要喜欢某个商店的朋友时,你只需要SINTER(设置)两者之间的交集。应该是快速的,存储朋友和商店喜欢作为集合将获得许多类似的好操作。不确定你当前是如何使用Redis缓存的,但是你可以将它们用作可能更便宜的内存替代品,以及获取用户的权限。朋友,商店'喜欢等...

至于cron,不确定这会有什么帮助。 Redis的速度足以处理上述类型的写入。记忆将首先成为你的瓶颈。

相关问题