woxio770 发表于 2018-11-3 11:20:32

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

import redis  

  
class LikeMessage(object):
  
    """实现微博点赞功能"""
  
    def __init__(self, msg_id, client):
  
      self.msg_id = msg_id
  
      self.client = client
  
      self.key = "weibo::message::" + str(msg_id) + "::like"
  

  
    def like(self, user_id):
  
      """对该微博点赞"""
  
      self.client.sadd(self.key, user_id)
  

  
    def is_liking(self, user_id):
  
      """检查用户是否赞了该微博"""
  
      return self.client.sismember(self.key, user_id)
  

  
    def undo(self, user_id):
  
      """取消点赞"""
  
      self.client.srem(self.key, user_id)
  

  
    def count(self):
  
      """获取该微博点赞人数"""
  
      return self.client.scard(self.key)
  

  
    def get_all_liking_user(self):
  
      """返回赞了该微博的所有用户"""
  
      if not self.client.exists(self.key):
  
            return False
  
      else:
  
            return self.client.smembers(self.key)
  

  

  
if __name__ == "__main__":
  
    redis_client = redis.StrictRedis()
  
    vote = LikeMessage(65535, redis_client)
  
    vote.like(10010)
  
    vote.like(10086)
  
    vote.like(10000)
  
    print(vote.count())
  
    print(vote.is_liking(10086))
  
    vote.undo(10086)
  
    print(vote.get_all_liking_user())


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