首页 > 代码库 > redis实现消息队列

redis实现消息队列

#!/usr/local/bin/python                                                                                                                                                 import redis                                                                        import time                                                                                                                                                             class RedisQueue(object):                                                               def __init__(self, name, namespace, **redis_args):                                      self.key = "%s:%s" % (namespace, name)                                              self.__db = redis.Redis(**redis_args)                                                                                                                               def qsize(self):                                                                        return self.__db.llen(self.key)                                                                                                                                     def empty(self):                                                                        return self.qsize() == 0                                                                                                                                            def get(self, block=True, timeout=None):                                                if block:                                                                               item = self.__db.blpop(self.key, timeout=timeout)                               else:                                                                                   item = self.__db.lpop(self.key)                                                                                                                                     if item:                                                                                item = item[1]                                                                  return item                                                                                                                                                         def put(self, item):                                                                    self.__db.rpush(self.key, item)                                                                                                                                     def get_nowait(self):                                                                   return self.get(False)                                                                                                                                                                                                                              r = RedisQueue(test, "liyang")                                                    begin = time.clock()                                                                for i in range(0, 100000):          r.put(str(i))                                                                end = time.clock()                                                               print end-begin                                                                                                                                                   begin = time.clock()                                                             for i in range(0, 100000):                                                           a = r.get()                                                                  end = time.clock()                                                               print end-begin    

 

redis实现消息队列