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