zoukankan      html  css  js  c++  java
  • redis应用-sortedset实现排行榜(转载)

    package site.zy9.redisApp.test;
     
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
     
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
     
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
     
    public class RedisAppSix {
     
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //redis的sortedset构建排行榜应用
            
            //不要用junit测试多线程,好坑
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
            
            //存储用户得分记录
            Map<String, Double> userScore = new HashMap<>();
            
            //创建10条用户得分记录并依次插入,i同时作为用户标识和分数
            for(double i=1;i<11;i++){        
            //使用JedisPool获取jedis对象,因为JedisPool是线程安全的
                userScore.put(i+"", i);
            }
            
            JedisPool jedisPool = (JedisPool) applicationContext.getBean("jedisPool");
            Jedis resource = jedisPool.getResource();
            resource.zadd("userScore", userScore);
            //取排行前5的记录
            Set<String> zrevrange = resource.zrevrange("userScore", 0L, 4L);
            //取标识为10的用户排名
            Long zrank = resource.zrank("userScore", "10.0");
            resource.close();
            
            //输出
            System.out.println("排名前5的用户");
            for (String string : zrevrange) {
                System.out.print(string+" ");
            }
            System.out.println();
            //0为排名第一,可根据情况对结果+1
            System.out.println("用户10.0的排名 "+zrank);
        }
     
    }

    运行结果

    原文地址:https://blog.csdn.net/qq646040754/article/details/81094472

  • 相关阅读:
    mysql replication常见错误整理
    enq: TX
    LOGMNR分析redo log和archive log教程
    使用create datafile... as ...迁移数据文件到裸设备
    mysql无法启动,报错 Can't start server: can't create PID file: No space left on device
    MYSQL 权限设置查询
    ORA-02437 违反主键
    oracle sequence的用法
    sequence有关问题
    关于Relay Log无法自动删除的问题
  • 原文地址:https://www.cnblogs.com/draem0507/p/9357832.html
Copyright © 2011-2022 走看看