我有一个庞大的Twitter用户数据库。基本上我需要为每个用户保存三个值。
我想移动这些数据用redis来加快查询速度。以下是它的工作原理:
场景一
每次更新/检查用户的个人资料时,我都需要节省此次更新的时间。同时,我需要捕获用户的最新和最早的推文ID(如果他们已经改变)。这一点很简单,我可以弄清楚redis哈希如何轻松管理这类数据。然而,我的困境是如何保持这些哈希值按last_update
值排序,以便我可以首先获取最少更新的记录,然后以循环方式循环遍历所有记录。
情景二 我的另一个选择是保存数据两次:
user_id
充当我的价值user_ids
第二个解决方案需要查询我的排序列表中的最低(最少更新)user_id
,然后使用user_id
从散列数据集中获取tweet_ids
。但是这会复制我的数据并且RAM很昂贵所以我正在寻找能够首先对哈希进行排序的解决方案。
目前,这些查询是通过MySQL执行的,我还没有尝试过任何解决方案,因为我找不到第一个首选方案的好答案。
任何见解解决方案将不胜感激。感谢。
答案 0 :(得分:1)
方案2使用排序列表是首选解决方案。
排序集非常有效,最适合根据分数获取范围值,例如前n个值。