0
点赞
收藏
分享

微信扫一扫

JAVA Redis StringRedisTemplate 修改值但是不修改过期时间


首先使用StringRedisTemplate存入一个String,带有过期时间:

int expires_in=3600;
stringRedisTemplate.opsForValue().set("test","hello",expires_in, TimeUnit.SECONDS);

 

接下来,修改值但是不修改过期时间:

stringRedisTemplate.opsForValue().set("test","hello",0);

这里的0,相当于一个偏移量,0:不偏移。

 

 

注意,这种情况 修改的值,长度不能比原值长度小。 感谢 九尾小妖狐灬 指出。
 

setRange ,在范围内替换,从索引1位置开始去一个个替换,所以当第二次修改的值长度小的时候,不能完全替换原值的所有位置字符。导致出现问题。

JAVA Redis  StringRedisTemplate 修改值但是不修改过期时间_java


针对这种要修改的值长度比原来小的情况,暂且做出一种补救方法,会存在一定的误差,不过不大:
 

stringRedisTemplate.opsForValue().set("test","hi",stringRedisTemplate.getExpire("test", TimeUnit.SECONDS),TimeUnit.SECONDS);

 

举报

相关推荐

0 条评论