xiaui520 发表于 2018-11-7 09:27:01

Redis Python Queue-yiyi

  RedisQueue.py文件内容:
  import redis
  class RedisQueue(object):
  """Simple Queue with Redis Backend"""
  def __init__(self, name, namespace='queue', **redis_kwargs):
  """The default connection parameters are: host='localhost', port=6379, db=0"""
  self.__db= redis.Redis(**redis_kwargs)
  self.key = '%s:%s' %(namespace, name)
  def qsize(self):

  """Return the approximate>  return self.__db.llen(self.key)
  def empty(self):
  """Return True if the queue is empty, False otherwise."""
  return self.qsize() == 0
  def put(self, item):
  """Put item into the queue."""
  self.__db.rpush(self.key, item)
  def get(self, block=True, timeout=None):
  """Remove and return an item from the queue.
  If optional args block is true and timeout is None (the default), block
  if necessary until an item is available."""
  if block:
  item = self.__db.blpop(self.key, timeout=timeout)
  else:
  item = self.__db.lpop(self.key)
  if item:
  item = item
  return item
  def get_nowait(self):
  """Equivalent to get(False)."""
  return self.get(False)
  使用
  >>> from RedisQueue import RedisQueue
  >>> q = RedisQueue('test')
  >>> q.put('hello world')
  打开另外一个窗口
  redis-cli 客户端显示结果:
  redis 127.0.0.1:6379> keys *1) "queue:test"redis 127.0.0.1:6379> type queue:testlistredis 127.0.0.1:6379> llen queue:test(integer) 1redis 127.0.0.1:6379> lrange queue:test 0 11) "helloworld"
  另外脚本可以得到:
  >>> from RedisQueue import RedisQueue>>> q = RedisQueue('test')>>> q.get()'hello world'


页: [1]
查看完整版本: Redis Python Queue-yiyi