使用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关:状态与信息流
