redis的有序队列
redis-sort-queue的Python项目详细描述
redis sort queue是一个优先级队列,在redis上易于使用
安装
安装redis排序队列包的最简单方法是通过 管道:
$ pip install redis-sort-queue
或者手动下载源并运行setup.py脚本:
$ python setup.py install
示例
我们在 examples 目录,但这里有一个关于如何开始的快速示例。假设 安装成功,可以导入redis排序队列 这样的包装:
然后,创建redisqueue的实例
您可以使用datetime作为优先级: 如果要使用多个队列,则必须创建
集合队列: 如果要使用池连接connection pool:fromredis_sort_queueimportRedisQueue
queue=RedisQueue('name_queue')queue.push(100,"element1",1,"element2")element=queue.pop()
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'])
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库
此处定义的方法:
count
count(self)
返回队列中的元素数
count\u lex
count_lex(self,min,max)
返回字典中队列中的项数 范围min和max。
count_优先级
count_priority(self,min,max)
返回队列中得分在min之间的元素数 以及max。
列表
list(self,start=0,end=-1,desc=False,withscores=False,score_cast_func=typefloat)
从队列返回排序在start和end之间的值范围 按升序排列。
start和end可以为负,表示范围的结束。
desc一个布尔值,指示是否对结果进行下行排序
with scores表示返回分数和值。这个 返回类型是(值,分数)对的列表
score_cast_func用于转换分数返回值的可调用函数
list_by_lex
list_by_lex(self,min,max,start=None,num=None)返回从排序队列中返回的值范围 min和max。
如果指定了start和num,则返回 范围。
按优先级列出
list_by_priority(self,min,max,start=None,num=None,withscores=False,score_cast_func=<type'float'>)
从排序队列中返回值的词典范围 min和max。
如果指定了start和num,则返回 范围。
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)
从队列中删除成员值
推荐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参数