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;
}