redis排序和计数应用

  System.out.println("测试");
  System.out.println("----------------Tests main-----------------");
  Jedis jedis = new Jedis("127.0.0.1",6379);
  jedis.auth("123456");
  //统计计数
  jedis.decr("newId");
  Long i=jedis.incr("newId");
  i=jedis.incrBy("newId",1);
  System.out.println(i);
  i=jedis.decr("newId");
  System.out.println(i);

  // 有序集合排序 字符串类型 单个
  zAdd("news",99,"张三",jedis);
  jedis.zadd("news",100,"李四");
  jedis.zadd("news",30,"王五");
  jedis.zadd("news",10,"赵刘");
  System.out.println(jedis.zrevrange("news",0,2));
  System.out.println(jedis.zrank("news","王五"));
  System.out.println(jedis.zrevrange("news",jedis.zrank("news","王五"),jedis.zrank("news","王五")+2));

  // 数组转字符串
  People people=new People("张三",23,98);
  new CacheTimer().zAddClass("ne",98,people,jedis);
  //people.setX(new Integer(98));
  People people2=new People("李四",29,97);
  People people3=new People("王五",28,100);
  People people4=new People("李六",43,67);
  People people5=new People("老七",34,53);
  People people6=new People("老八",21,87);

  //Object o= ObjectPeople;
//  jedis.zadd("ne".getBytes(),people.getGrade(),JSONObject.toJSON(people).toString().getBytes());
  jedis.zadd("ne".getBytes(),people2.getGrade(),JSONObject.toJSON(people2).toString().getBytes());
  jedis.zadd("ne".getBytes(),people3.getGrade(),JSONObject.toJSON(people3).toString().getBytes());
  jedis.zadd("ne".getBytes(),people4.getGrade(),JSONObject.toJSON(people4).toString().getBytes());
  jedis.zadd("ne".getBytes(),people5.getGrade(),JSONObject.toJSON(people5).toString().getBytes());
  jedis.zadd("ne".getBytes(),people6.getGrade(),JSONObject.toJSON(people6).toString().getBytes());

 // jedis.zrevrange("ne",0,2);

  System.out.println(jedis.zrevrange("ne",0,2));
  Set<String> strings=jedis.zrevrange("ne",0,2);
  List<People> peopleList=new ArrayList<People>();
  for (String string:strings){
      System.out.println(string);
     People people1= JSONObject.parseObject(string,CacheTimer.People.class)  ;
     peopleList.add(people1);
  }

  for (People p1:peopleList){
      System.out.println(p1.getName());
  }
  jedis.close();

}

public  void zAddClass(String key,int score, Object t, Jedis jedis){
    jedis.zadd(key.getBytes(),score, JSONObject.toJSON(t).toString().getBytes());
}
public static void zAdd(String key,int score,String t, Jedis jedis){
    jedis.zadd(key,score, t);
}
public List<T> zrevrange(String key,long start,long end,T t,Jedis jedis){
    List<T> tList=new ArrayList<T>();
    Set<byte[]> strings=jedis.zrevrange(key.getBytes(),start,end);
    for (byte[] string:strings){
        T t1= JSONObject.parseObject( new String(string),t.getClass())  ;
        tList.add(t1);
    }
    return tList;
}
static class People  implements Serializable{
     private String name;
     private Integer age;
     private  Integer grade;



    public People() {}

    public People(String name, Integer age, Integer grade) {
        this.name = name;
        this.age = age;
        this.grade = grade;
    }

    public String getName() {
         return name;
     }

     public void setName(String name) {
         this.name = name;
     }

     public Integer getAge() {
         return age;
     }

     public void setAge(Integer age) {
         this.age = age;
     }

     public Integer getGrade() {
         return grade;
     }

     public void setGrade(Integer grade) {
         this.grade = grade;
     }

   /* @Override
    public String toString() {
        return "name"+name+" ,age"+age+",grade"+grade;
    }*/
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值