方法如下:
String set(String key, String value) //默认的ttl是-1(永不过期)
String set(String key, String value, String nxxx)
String set(String key, String value, String nxxx, String expx, int time)
String set(String key, String value, String nxxx, String expx, long time)
1、第三个参数nxxx:
nx : not exists, 只有key 不存在时才把key value set 到redis
xx : is exists ,只有 key 存在是,才把key value set 到redis
2、expx参数有两个值可选 :
ex : seconds 秒
px : milliseconds 毫秒
使用其他值,抛出 异常 : : ERR syntax error
3、4 和2 相同,方法4的过期范围取值更大
第五个参数,有两种可选的值,int 和long 的time,都是过期时间,那有什么不一样呢?
Jedis 类的set 方法中 int和long(第五个参数)重载的方法,方法体基本一样:
public String set(final String key, final String value, final String nxxx, final String expx, final int time){
checkIsInMultiOrPipeline();
(key, value, nxxx, expx, time)
return ();
}
public String set(final String key, final String value, final String nxxx, final String expx, final long time){
checkIsInMultiOrPipeline();
(key, value, nxxx, expx, time)
return ();
}
Jedis 类 --》 Client类 --》 BinaryClient 都是一样的
在BinaryClient 的set 方法中,对 int 和 long 的time参数,做了个 toByteArray(time),操作,打开源码,发现:
public static final byte[] toByteArray(final int value){
return (StringvalueOf(value));
}
public static final byte[] toByteArray(final long value){
return (StringvalueOf(value));
}
4、返回值String,如果写入成功是“OK”,写入失败返回空(在nxxx的时候,也是)