redis的有序队列

redis-sort-queue的Python项目详细描述


redis sort queue是一个优先级队列,在redis上易于使用

安装

安装redis排序队列包的最简单方法是通过 管道:

$ pip install redis-sort-queue

或者手动下载源并运行setup.py脚本:

$ python setup.py install

示例

我们在 examples 目录,但这里有一个关于如何开始的快速示例。假设 安装成功,可以导入redis排序队列 这样的包装:

然后,创建redisqueue的实例

fromredis_sort_queueimportRedisQueue
queue=RedisQueue('name_queue')queue.push(100,"element1",1,"element2")element=queue.pop()

您可以使用datetime作为优先级:

fromredis_sort_queueimportRedisQueuefromdatetimeimportdatetimequeue=RedisQueue('name_queue')queue.push(datetime.now(),"element1",1,"element2")

如果要使用多个队列,则必须创建 集合队列

fromredis_sort_queueimportRedisQueue,CollectionQueues
queue1=RedisQueue('A')queue2=RedisQueue('B')queue1.push(100,"E",1,"L")queue2.push(101,"T")
collection=CollectionQueues()queue3=collection.intersect_queues('intersect1',['A','B'])

如果要使用池连接connection pool

fromredis_sort_queueimportRedisQueue,CollectionQueues,ConnectionPool
pool=ConnectionPool(host='127.0.0.1',port=6379)
queue1=RedisQueue('A',connection_pool=pool)queue2=RedisQueue('B',connection_pool=pool)queue1.push(100,"E",1,"L")queue2.push(101,"T",datetime.now(),10)collection=CollectionQueues(connection_pool=pool)queue3=collection.intersect_queues('intersect1',['A','B'])element=queue.pop()

API库

此处定义的方法:

cleanpython clean(self)
删除队列中的所有值

count

count(self)

返回队列中的元素数

count\u lex

count_lex(self,min,max)

返回字典中队列中的项数 范围minmax

count_优先级

count_priority(self,min,max)

返回队列中得分在min之间的元素数 以及max

incr_prioritypython incr_priority(self, value, amount=1)
将队列中value的分数增加amount

列表

list(self,start=0,end=-1,desc=False,withscores=False,score_cast_func=typefloat)

从队列返回排序在startend之间的值范围 按升序排列。

startend可以为负,表示范围的结束。

desc一个布尔值,指示是否对结果进行下行排序

with scores表示返回分数和值。这个 返回类型是(值,分数)对的列表

score_cast_func用于转换分数返回值的可调用函数

list_by_lex

list_by_lex(self,min,max,start=None,num=None)
返回从排序队列中返回的值范围 minmax

如果指定了startnum,则返回 范围。

按优先级列出

list_by_priority(self,min,max,start=None,num=None,withscores=False,score_cast_func=<type'float'>)

从排序队列中返回值的词典范围 minmax

如果指定了startnum,则返回 范围。

pop

pop(self,desc=False)

从队列顺序desc中删除第一个成员values

push

push(self,*args,**kwargs)

为队列设置任意数量的分数、元素名对。成对可以是 以两种方式指定:

作为*参数,形式为:score1,name1,score2,name2,…

下面的示例将向队列添加两个值:redis.push( 1.1,'name1',2.2,'name2')

删除

remove(self,*values)

从队列中删除成员值

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Cassandra DB的javascript查询结果   java定时器任务调度   java在TLS上实现LDAP   为什么在浏览器中滚动会使java小程序闪烁?   未使用轮询器和serviceactivator提取java pubsub消息   java风暴多线程问题   java计算平均成绩   java将字符串添加到另一个类的数组列表中   文件Java路径如何转换为例如InputStream   java更改JComboBox的字体颜色   java inthttp:具有可轮询请求通道的inboundgateway   使用继承在Java中运行swing Base和扩展windows   java ivysettings。xml:添加本地maven路径   java如何将参数自定义视图传递给activity类   java延迟加载无法在Hibernate中使用一对一映射   当文件以“file:/”开头时,Java无法识别该文件   需要java正则表达式帮助,使用反斜杠   片段中的java GWT参数