import java.util.Random;
import java.util.Set;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;
public class TopRank {
static Jedis jedis = new Jedis("192.168.213.***");
public static void main(String[] args) {
new Thread(new province()).start();
int i = 0;
// 不断获取最新的排行榜
while (true) {
try {
Thread.sleep(3000);
Set<Tuple> province = jedis.zrevrangeWithScores("province", 0, -1);
System.out.printf("第%s次获取排行榜:", i);
System.out.println();
for (Tuple t : province) {
System.out.println(t.getElement() + " : " + t.getScore());
}
i++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static class province implements Runnable {
@Override
public void run() {
String[] provinces = new String[] { "北京","南京", "河南", "安徽","广州", "湖北", "吉林"};
Random random = new Random();
// 不断产生新的省份点击率
while (true) {
try {
Thread.sleep(1000 + random.nextInt(10) * 100);
// 随机挑选一个省份
int index = random.nextInt(7);
String province = provinces[index];
// 在redis数据库中给相应的省份增加分数
jedis.zincrby("province", 1, province);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
redis多线程排序Demo
最新推荐文章于 2024-01-17 13:45:33 发布