spring redisパッケージ操作redisを使用してincr操作を行う


 
    //     
    public Long incr(String key, long liveTime) {
        RedisAtomicLong entityIdCounter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());
        Long increment = entityIdCounter.getAndIncrement();
        //        
        if ((null == increment || increment.longValue() == 0) && liveTime > 0) {
            //liveTime   
            entityIdCounter.expire(liveTime, TimeUnit.SECONDS);
        }
        return increment;
    }
    //     
    private String getOrder() {
        String order = "";
        //incr    0,        1,      0   
        Long incr = this.incr("key" , 5);
        if (incr == 0) {
            //    key  key 5    ,            key   
            incr = this.incr("key" , 5);
        }
        DecimalFormat df = new DecimalFormat("00000");
        order = df.format(incr);
        return order;
    }
 

 
順序付きコレクションの値を返します.
 @RequestMapping("/redisGet")
    public String testGet() {

        Set> rangeWithScores =                 
        redisTemplate.opsForZSet().rangeByScoreWithScores("key",0,10);
        Iterator> iterator = rangeWithScores.iterator();
        while(iterator.hasNext()){
            ZSetOperations.TypedTuple next = iterator.next();
            System.out.println("value:"+next.getValue()+" score:"+next.getScore());
            score =next.getScore();
        }
        return "keysNumber="+this.redisTemplate.opsForZSet().size("key")+"score:"+score;
    }