我正在寻找可扩展的方法来执行以下操作:
问题:如何以可扩展的方式完成?用户最多可以拥有200万朋友或粉丝.目前我将它们存储在SQLite表中并通过循环进行比较.当用户返回时,表被清除并且进程再次开始.
这适用于100-1000个朋友..但是对于500000个朋友来说会很棘手.我无法缓存列表,因为它们可以随时改变.
有谁知道处理如此大量数据的好方法?
我不知道你的数据库是什么样的,但这就是我的设置方式。
CREATE TABLE twitter_users (
user_id INTEGER PRIMARY KEY NOT NULL,
screen_name VARCHAR(20) NOT NULL
);
CREATE TABLE friends (
friend_id INTEGER PRIMARY KEY NOT NULL
);
CREATE TABLE followers (
follower_id INTEGER PRIMARY KEY NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
然后你可以使用这个SQL来获取不是关注者的好友。
SELECT friend_id, screen_name
FROM friends
LEFT JOIN followers ON follower_id = friend_id
LEFT JOIN twitter_users ON user_id = friend_id
WHERE follower_id IS NULL
Run Code Online (Sandbox Code Playgroud)
如果屏幕名称为 ,NULL则表示它们不在您的twitter_users表中。您可以查找丢失的用户并将其存储以供以后使用。屏幕名称可能会更改,因此您可能需要定期更新该表。
使用Friends/ids和follower/ids API 一次获取 5,000 个好友和关注者 ID 列表。使用users/lookup API 获取最多 100 个屏幕名称。如果用户有 2,000,000 个朋友,则需要 400 个 api 调用才能获取 id 列表,因此您仍然应该至少为热门用户缓存该列表。
| 归档时间: |
|
| 查看次数: |
1646 次 |
| 最近记录: |