rmq 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
rmq 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
rmq 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
rmq 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
rmq 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2014-01-16

软件简介

rmq 是一个基于 Redis 的消息队列服务,体积小而且易用,客户端基于 Jedis

示例代码:

Producer p = new Producer(new Jedis("localhost"),"some cool topic");
p.publish("some cool message");

Consumer c = new Consumer(new Jedis("localhost"),"consumer identifier","some cool topic");
c.consume(new Callback() {
    public void onMessage(String message) {
        //do something here with the message
    }
});

Consumer c = new Consumer(new Jedis("localhost"),"consumer identifier","some cool topic");
String message = c.consume();

String message = c.read();
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2018/02/22 22:13

RMQ

为了明天不爆零,我还是把RMQ学完吧。(虽然明天可能仍然会爆零) 好了现在鼓掌请本场嘉宾RMQ上场(啪啪啪啪啪啪) 百度小姐姐说它是指对于长度为n的数列·A,回答若干次询问RMQ(A,i,j)(i,j小于等于n), 返回数列中下标在i到j的最小(大)值。 st算法:实际上就是个动态规划 (1)、预处理:o(nlogn) f [ i ][ j ] 表示从第i个数起到第2 ^ j 个数中的最大值 例如数列 3 2 4 5 6 8 1 2 9 7 f [1][ 2] = 5;f [1][3] = 8.....

0
0
发表了博客
2018/09/02 11:10

RMQ

·离线快速区间求最值,O(nlogn)预处理,O(1)查询。 ·dp[i][j]表示第i位带i+2^j-1位的区间最大值或区间最小值。 ·预处理的转移方程为 dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]; 将区间一分为二。 ·查询的时候:l-r区间查询,去len=r-l+1;求的2^k<=len,用k把区间分为l到l+(1<<k)-1和r-(1<<k)+1到r的两个相交叉的部分来求解。 #include <bits/stdc++.h> using namespace std; const int maxn = 10010; int data[...

0
0
发表了博客
2018/07/08 17:40

约束RMQ

不知道为什么网上找不到太多相关的资料,所以写一个小总结,并附有能用的代码,抛砖引玉。 约束RMQ,就是RMQ区间必须满足两项之差最大为1,采用ST表的话,这时候有O(n)建表,O(1)查询的优秀复杂度 求LCA,通过DFS把原树转化为深度序列,就等价于求区间最小值 (取到的位置) 由于DFS的性质,该序列两个数之间显然相差1,所以可以使用约束RMQ解决 先总体概括一下做法:把原序列分块,块内预处理,块间做ST表 分块大小定为L=log(n)/...

0
0
发表了博客
2018/02/16 14:46

RMQ模板

RMQ 即范围最小值问题 (Range Minimum Query)。给出一个 n 个元素的数组,设计一个数据结构,支持查询操作 Query(L, R):计算该区间内的最小值。 如果用朴素的算法的话,每一次一个循环求解,那时间复杂度就达到了 O(mn),显然不够快。在实践中,最常用的是 Tarjan 的 Sparse - Table(st 表)算法,主要功能是解决静态区间最值问题。它用 O(nlogn)预处理,而查询只用 O(1),且常数很小。 这个算法具体是这么写的:开一个二维数组...

0
0
发表了博客
2018/06/17 06:30

RMQ问题

ST表是用来解决RMQ(区间最值)问题的算法 预处理O(nlgn) 查询O(1) 不支持在线查询 最小值可以合并但不支持分割 比如说我们知道[1,9]和[6,10]的最小值,我们可以知道[1,10]的最小值,但不能知道[6,9]的最小值 我们可以枚举以每个节点为起点经过k个节点的最值 但是预处理是O(n2),这时候我们想到了倍增,一种十分巧妙的思想 它可以在变化规则相同的情况下加速状态转移,我们每次把k扩大一倍 f[i,j]表示[i,i+2j-1]区间内的信息 f[...

0
0
发表了博客
2018/10/03 10:19

RMQ原理及实现

  RMQ(Range Minimum/Maximum Query),区间最值查询问题,是指:对于长度为n的数列A,回答若干次询问RMQ(i,j),返回数列A中下标在区间[i,j]中的最小/大值。   这里介绍Tarjan的Sparse-Table算法,预处理时间为O(nlogn),但查询只需要O(1),并且常数很小,算法也很容易写出。  1)预处理:   设A[i]是要求区间最值的数列,d[i, j]表示从第i个数起连续2^j个数中的最小值。(DP的状态)   显然d[i][0]的值就是A[i](DP初...

0
0
发表了博客
2019/04/29 18:50

区间RMQ问题

简介 RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。 RMQ(Range Minimum/Maximum Query),即区间最值查询,这是一种在线算法,所谓在线算法,是指用户每次输入一个查询,便马上处理一个查询。RMQ算法一般用较长时间做预处理,时间复杂度为O(nlogn),然后可以在O(1)的时间内处理每次查询。...

0
0
发表了博客
2019/07/19 20:35

【ST表(RMQ)】

ST表   ST表是一种解决RMQ(区间最值问题)的强有力的工具   它可以做到O(nlogn)预处理,O(1)查询最值。 实现   ST表其实是一种倍增的思想,我们就拿取最大值为例: 开一个二维数组Max,其中Max[i][j]表示从第i位开始,包括第i位在内的2^j个数中最大的数,例如Max[i][1]表示第i个数和第i+1个数中大的那个数。 然后就类似于二分的样子,下一层也是拿两个已得到的区间的最大值作比较,然后存储。 预处理代码 1 for(int j=1;...

0
0
发表了博客
2014/06/16 22:34

RMQ(Range Minimum Query)

问题 RMQ问题是求给定区间中的最值问题。对于长度为n的数列A,回答若干查询RMQ(A, i, j)。返回数组A中下标在[i,j]里的最小值的下标。比如数列 5,8,1,3,6,4,9,5,7 那么RMQ(2,4) = 3, RMQ(6,9) = 6. 解决方法 主要方法及复杂度(处理复杂度和查询复杂度)如下: 朴素(即搜索) O(n)-O(n) ST(实质是动态规划) O(nlogn)-O(1) 线段树(segment tree) O(n)-O(qlogn) 朴素 即是直接搜索,对被查询的空间进行直接遍历,时间复杂度为O(n...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
18 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部