xyzjr 发表于 2018-11-3 11:17:50

Redis实现微博后台业务逻辑系列(五)

import redis  
import time
  

  
class Message(object):
  
    """使用散列键存储微博信息"""
  
    def __init__(self, client):
  
      self.client = client
  

  
    def create(self, author_id, content, origin_message_id=None):
  
      """存储一条微博,并返回微博ID和时间"""
  
      message_id = IdGenerator("weibo::message::ids", self.client).gen()
  
      key = "weibo::message::" + str(message_id)
  
      weibo_timestamp = int(time.time())
  
      # origin_message_id 被转发微博ID,如果为空这条微博就是一条普通的微博,否则就是转发微博
  
      if origin_message_id is None:
  
            self.client.hmset(key, {"id": message_id, "author_id": author_id, "time": weibo_timestamp, "content": content})
  
      else:
  
            self.client.hmset(key, {"id": message_id, "author_id": author_id, "time": weibo_timestamp, "content": content, "origin_message_id": origin_message_id})
  
      return message_id, weibo_timestamp
  

  
    def get_by_id(self, message_id):
  
      """根据微博ID获取微博信息"""
  
      message_key = "weibo::message::" + str(message_id)
  
      return self.client.hgetall(message_key)
  

  
if __name__ == "__main__":
  
    redis_cliet = redis.StrictRedis()
  
    msg = Message(redis_client)
  
    message_id, weibo_timestamp = msg.create(10086, "hello world")
  
    print(msg.get_by_id(message_id))


页: [1]
查看完整版本: Redis实现微博后台业务逻辑系列(五)