RedisTemplate可以获取ValueOperation接口,接口中提供了3个set方法:
1,void set(K key,V value);
2, void set(K key,V value,long timeout, TimeUnit unit);
3,void set(K key,V value, long offset)
在操作设置key,value过期时间时,第一次key不存在,用了方法2,第二次key存在时,获取key的剩余timeout时间,没有调用方法2,印象中有个默认是秒的过期时间,于是直接调用方法3,然后在get的时候,出现序列化问题,后来发现,方法3是对应的setRange命令,差点酿成大错。