redis.set方法详解
String set(String key, String value, String nxxx, String expx, long time);
该方法是: 存储数据到缓存中,并制定过期时间和当Key存在时是否覆盖。
nxxx: 只能取NX或者XX,如果取NX,则只有当key不存在是才进行set,如果取XX,则只有当key已经存在时才进行set
expx: 只能取EX或者PX,代表数据过期时间的单位,EX代表秒,PX代表毫秒。
time: 过期时间,单位是expx所代表的单位。
判断redis是否存在方法:
1:jedis.get("ts1")的是否为-2,如果是-2,则不存在键。为-1键存在。
2:jedis.exists("ts1"),值为true,存在,否则不存在。
生成自增长单号代码:
/**
* 从Redis中获取某种类型的自增值
* 生成规则 年(两位)+月(两位)+流水码(五位)
* @param type
* @return
*/
public String getAutoNumber(String type) {
String autoKeyFlag = ""; //定义接收用于自增的value
String autoKey = type+"tableAutoKey";
Boolean exists = redisService.exists(autoKey);
long time = 2505600;//一个月时间
if(exists) {
autoKeyFlag = String.valueOf(redisService.incr(autoKey));
}else {
redisService.set(autoKey, "0", "NX", "EX", time);
autoKeyFlag = String.valueOf(redisService.incr(autoKey));
}
DecimalFormat df = new DecimalFormat("00000");
autoKeyFlag = df.format(Integer.parseInt(autoKeyFlag));
autoKeyFlag = String.valueOf(new SimpleDateFormat("yyMM").format(new Date()))+autoKeyFlag;
return autoKeyFlag;
}