我的项目中就用的这种代码,只不过是将属性都修饰成私有的而已。
package .push.web; import java.util.List; import java.util.Timer; import java.util.TimerTask; import java.util.stream.Collectors; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ZSetOperations; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import .database.response.RestfullApi; import .database.response.RestfullApiHelper; import .database.response.ResultStatus; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @RestController @RequestMapping("/test") @Api("测试") public class Testsssssss { @Autowired private RestfullApiHelper restfullApiHelper; @Autowired private RedisTemplate<String, String> redisTemplate; private ZSetOperations<String, String> zset; @PostConstruct // 在最后初始化 public void init() { zset = redisTemplate.opsForZSet(); } @ApiOperation(value = "测试", notes = "排行榜") @RequestMapping(value = "/t1", method = RequestMethod.POST) @ApiImplicitParams({ @ApiImplicitParam(name = "state", value = "状态", required = true, dataType = "boolean", paramType = "query")}) public void/*RestfullApi<List<String>>*/ loginByPsw(boolean state) throws Exception { //return restfullApiHelper.transform(ResultStatus.SUCCESS, list); data("hahahhaha"); if(state) { startTimers(); }else { stopTimers(); } } //使用Rides中的ZSet对数据进行读写。 public void data(String key) { //往ZSet中存数据,三个参数:key用来标识哪个zset,“4”表示这条数据的key,33表示需要排序的值。 zset.add(key, "4", 33); zset.add(key, "3", 32); zset.add(key, "5", 36); zset.add(key, "2", 29); zset.add(key, "1", 166); zset.add(key, "1", 11); zset.add(key, "4", 304); System.out.println(zset.size(key)); //将排过序的数据取出来,指定索引范围,倒序。key用来标识redis中的ZSet,0和3分别表示从索引0去到索引3含头含尾。 List<String> list = zset.reverseRange(key,0,3).stream().collect(Collectors.toList()); } Timer timer; boolean isOpen = false; public void startTimers() { if(isOpen) { stopTimers(); } isOpen = true; timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { List<String> list = zset.reverseRange("hahahhaha",0,3).stream().collect(Collectors.toList()); System.out.println(list); } }, 0, 1000); } public void stopTimers() { timer.cancel(); } }