代码清单 5-5 展示了一个使用集合来记录社交关系的方法:

    • 程序为每个用户维持两个集合,一个集合储存用户的正在关注名单,而另一个集合则储存用户的关注者名单。

    • 当关注者取消对被关注者的关注时,程序会将被关注者从关注者的正在关注名单中移除,并将关注者从被关注者的关注者名单中移除。


    代码清单 5-5 使用集合实现社交关系:


    1. >>> from redis import Redis
    2. >>> from relationship import Relationship
    3. >>> peter = Relationship(client, 'peter') # 这个对象记录的是 peter 的社交关系
    4. >>> peter.follow('jack') # 关注一些人
    5. >>> peter.follow('tom')
    6. >>> peter.follow('mary')
    7. >>> peter.get_all_following() # 获取目前正在关注的所有人
    8. >>> peter.count_following() # 统计目前正在关注的人数
    9. 3
    10. >>> jack = Relationship(client, 'jack') # 这个对象记录的是 jack 的社交关系
    11. >>> jack.get_all_follower() # peter 前面关注了 jack ,所以他是 jack 的关注者
    12. set(['peter'])
    13. 1

    图 5-10 展示了以上代码创建的各个集合。


    图 5-10 社交关系集合示例