使用Redis构建简单的社交网站

社交网站已经成为人类生活中不可或缺的部分。现有的两大社交网站——微博,推特都高度依赖 Redis 承载海量用户访问。

本实训项目从创建用户与状态,处理用户关系,状态与信息流三个方面介绍如何使用 Redis 构建简单的社交网站。

第1关:创建用户与动态

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import re
import time
import redis

conn = redis.Redis()

# 创建新用户
def create_user(login_name, real_name):
    # 请在下面完成要求的功能
    #********* Begin *********#
    login_name = login_name.lower()
    if conn.hget("users", login_name):
        return None

    uid = conn.incr("user:id")
    pipe = conn.pipeline(True)
    pipe.hset("users", login_name, uid)
    pipe.hmset("user:%i"%(uid), {
          
   
        login_name: login_name,
        id: uid,
        real_name: real_name,
        followers: 0,
        following: 0,
        posts: 0,
        last_signup: time.time(),
    })
    pipe.execute()

    return uid
    #********* End *********#

# 为用户创建新动态
def create_post(uid, content):
    # 请在下面完成要求的功能
    #********* Begin *********#
    pipe = conn.pipeline(True)
    pipe.hget("user:%i"%(uid), login_name)
    pipe.incr("post:id")
    login_name, pid = pipe.execute()

    if not login_name:
        return None

    pipe.hmset("post:%i"%(pid), {
          
   
        id: pid,
        uid: uid,
        content: content,
        posted: time.time(),
        user_name: login_name,
    })
    pipe.hincrby("user:%i"%(uid), posts)
    pipe.execute()

    return pid
    #********* End *********#

第2关:处理用户关系

第3关:状态与信息流

经验分享 程序员 微信小程序 职场和发展