我有一个使用频繁更新列表的应用程序。例如,每个点击按钮的人都会被添加到与该按钮相关联的唯一列表中。然后我们要按按钮,按降序和限制显示这些列表。
我们一直在使用MySQL和Memcache这样做。问题是这不行。
我打算做的是使用Redis列表。每个按钮都会在redis中保存一个唯一键,每个用户都将使用LPUSH
添加到键中。如果我们想要获得最新的10,我们可以使用LRANGE 0 10
现在,最终这些按钮将“过期”,不再被主动添加或点击,但是,我们需要历史数据。这个想法一旦过期,我们将从Redis获取数据并将其填充到MongoDB。对历史数据的任何疑问都将针对MongoDB。
有人建议反对这个解决方案吗?这样做是否“有意义”?
谢谢!
答案 0 :(得分:2)
这个解决方案很有意义,我在我的应用程序中做了类似的事情。
但有一点需要注意:
例如,每个点击按钮的人都会被添加到与该按钮相关联的唯一列表中。
您是否允许该列表中的重复用户?如果是,请使用列表。如果没有,你可能想把它与set(用于独特的检查)结合起来,但它会花费你一些RAM。