jedis set 的四个重载方法

方法如下:

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 毫秒

     使用其他值,抛出 异常 : redis.clients.jedis.exceptions.JedisDataException : 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();
          client.set(key, value, nxxx, expx, time)
          return client.getStatusCodeReply();
     }


public String set(final String key, final String value, final String nxxx, final String expx, final long time){
          checkIsInMultiOrPipeline();
          client.set(key, value, nxxx, expx, time)
          return client.getStatusCodeReply();
     }

Jedis 类 --》 Client类 --》 BinaryClient  都是一样的

在BinaryClient 的set 方法中,对 int 和 long 的time参数,做了个 toByteArray(time),操作,打开源码,发现:

public static final byte[] toByteArray(final int value){
    return SafeEncoder.encode(StringvalueOf(value));
}


public static final byte[] toByteArray(final long value){
    return SafeEncoder.encode(StringvalueOf(value));
}

 

4、返回值String,如果写入成功是“OK”,写入失败返回空(在nxxx的时候,也是)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值