jedis 升级 2.0.0 to 2.1.0
今天发现jedis?2.0.0 在使用pipeline时,如果结果是null,会有如下异常
?
java.lang.NullPointerException
at java.lang.String.(String.java:515)
at redis.clients.util.SafeEncoder.encode(SafeEncoder.java:28)
at redis.clients.jedis.BuilderFactory$5.build(BuilderFactory.java:55)
at redis.clients.jedis.BuilderFactory$5.build(BuilderFactory.java:58)
at redis.clients.jedis.Response.get(Response.java:27)
?
看了下源码,Response.get 中没有对data为null的情况进行处理
?
?
key?member [member ...]?
2.1.0是标准化了
如果换成2.1.0后,不重编译,自然就NoSuchMethodError
?
相关jar重编译后
原来的
jedis.sadd("foo", "bar");
会变成
jedis.sadd("foo", new String[]{"bar"});
反编译下jar就能看到了
?
?
没在官方找到类似chang log的东西,有人知道在什么地方吗?
?
自己比较了一下,主要有如下变化(不完整)
?
和sadd类似的有 srem ?hdel ? zrem
Long zadd(final String key, final Map<Double, String> scoreMembers)
?
Long rpush(final String key, final String string)
TO
Long rpush(final String key, final String... strings)
类似的有 lpush
?
?
zrange(final String key, final int start, final int end)
TO
zrange(final String key, final long start, final long end)
类似的有 ?zrevrange ? zrangeWithScores ?zrevrangeWithScores ?zremrangeByRank
?
和ByScore相关的,原来的 min max score 参数都是double类型
2.1.0中 每个函数都增加了一个 ?min max score 都是string类型的版本
来处理score为如下情况的时候
-inf +inf?
(1 (2
?
?
增加内容
增加了在redis 2.6 中和Lua script相关的接口
List<String> configGet(final String pattern)
String configSet(final String parameter, final String value)
List<Slowlog> slowlogGet(long entries)