Lettuce 5.1.0.M1 发布,带来 5 大功能特性变更

淡漠悠然
 淡漠悠然
发布于 2018年05月15日
收藏 5

Lettuce 5.1.0.M1 发布,这是 Lettuce 5.1 发布的第一个预览版本,包含改进和错误修复。Lettuce 5.1.0.M1 需要 Java 8,Java 9 或 Java 10 环境。

此次比较显著的变化有:

  • Redis Streams 的 API 预览

  • 异步池实现

  • SCAN 流和初始化

  • 全局命令超时(默认情况下禁用)

  • 主/从和 Sentinel 的异步连接方法

具体更新内容如下:

Commands

  • Add AUTH option to MIGRATE command #733

  • Add MASTER type to KillArgs #760

Enhancements

  • Support for command timeouts (async, reactive) #435

  • Use object pooling for collections inside a single method and Command/CommandArgs with a small scope #459

  • Add support for Redis streams #606

  • Introduce dedicated exceptions for NOSCRIPT and BUSY responses #620 (Thanks to @DaichiUeura)

  • Non-blocking connection pooling #631

  • Introduce fast-path publishing in RedisPublisher #637

  • Add reactive scanning #638

  • Asynchronous connection initialization #640

  • Create reusable abstraction for non-blocking and keyed connection provider #642

  • Expose asynchronous connect method for Master/Slave connections #643

  • Add SocketAddressOutput to directly parse SENTINEL get-master-addr-by-name output #644

  • Misleading wasRolledBack method #662 (Thanks to @graineri)

  • Read from random slave preferred #676 (Thanks to @petetanton)

  • Introduce exception to represent Redis LOADING response #682

  • Do not fail if COMMAND command fails on startup #685 (Thanks to @pujian1984)

  • CommandHandler.write() is O(N^2) #709 (Thanks to @gszpak)

  • Cluster topology lookup should not replaces self-node details with host and port from RedisURI when RedisURI is load balancer #712 (Thanks to @warrenzhu25)

  • Optimize Partitions/RedisClusterNode representation #715

  • Unnecessary copying of byteBuf in CommandHandler.decode() #725 (Thanks to @gszpak)

  • Add unknown node as trigger for adaptive refresh #732

Fixes

  • PING responses are not decoded properly if Pub/Sub connection is subscribed #579

  • Lettuce doesn't fail early & cleanly with a host in protected mode #608 (Thanks to @exercitussolus)

  • CommandHandler.rebuildQueue() causes long locks #615 (Thanks to @nikolayspb)

  • Request queue size is not cleared on reconnect #616 (Thanks to @nikolayspb)

  • BITPOS should allow to just specify start. #623 (Thanks to @christophstrobl)

  • HMGET proxy not working as expected #627 (Thanks to @moores-expedia)

  • Consider binary arguments using command interfaces as keys using binary codecs #628

  • Command.isDone() not consistent with CompletableFuture.isDone() #629

  • Race condition in RedisPublisher DEMAND.request() and DEMAND.onDataAvailable() #634 (Thanks to @mayamoon)

  • RedisPublisher.request(-1) does not fail #635

  • Capture subscription state before logging in RedisPublisher #636

  • Provide Javadoc path for Project Reactor #641

  • Debug logging of ConnectionWatchdog has wrong prefix after reconnect. #645 (Thanks to @mlex)

  • Cannot close connection when refreshing topology #656 (Thanks to @dangtranhoang)

  • Weights param should be ignored if it is empty #657 (Thanks to @garfeildma)

  • MasterSlave getNodeSpecificViews NPE with sync API #659 (Thanks to @boughtonp)

  • RandomServerHandler can respond zero bytes #660

  • ConcurrentModificationException when connecting a RedisClusterClient #663 (Thanks to @blahblahasdf)

  • Switch RedisSubscription.subscriber to volatile #664

  • Recovered Sentinels in Master/Slave not reconnected #668

  • Handling dead Sentinel slaves #669 (Thanks to @vleushin)

  • Move SocketAddressResolver resolution back to calling thread #670

  • Support SLAVE_PREFERRED at valueOf method #671 (Thanks to @be-hase)

  • RedisCommandTimeoutException after two subsequent MULTI calls without executing the transaction #673 (Thanks to @destitutus)

  • Fix ConnectionWatchDog won't reconnect problem in edge case #679 (Thanks to @kojilin)

  • At least once mode keeps requeueing commands on non-recoverable errors #680 (Thanks to @mrvisser)

  • Retain ssl/tls config from seed uris in Master/Slave context #684 (Thanks to @acmcelwee)

  • NOAUTH after full queue and reconnect #691

  • RedisURI.create("localhost") causes NPE #694

  • Async connect methods report original cause #708

  • Mono returned by RedisPubSubReactiveCommands#subscribe does not return result #717 (Thanks to @ywtsang)

  • RuntimeExceptions thrown by implementations of RedisCodec do not fail TransactionCommands #719 (Thanks to @blahblahasdf)

  • Connection Leak in Cluster Topology Refresh #721 (Thanks to @cweitend)

  • Ensure Master/Slave topology refresh connections are closed #723

  • RedisPubSubAdapter.message() being called with wrong channel #724 (Thanks to @adimarco)

  • Batched commands may time out although data was received #729

  • DefaultEndpoint future listener recycle lose command context on requeue failures #734 (Thanks to @gszpak)

  • AsyncPool, AsyncConnectionPoolSupport are nowhere to be found #739 (Thanks to @fabienrenaud)

  • firstResponseLatency is always negative #740 (Thanks to @nickvollmar)

  • EXEC does not fail on EXECABORT #743 (Thanks to @dmandalidis)

  • Warning when refreshing topology #756 (Thanks to @theliro)

  • DefaultEndpoint.QUEUE_SIZE becomes out of sync, preventing command queueing #764 (Thanks to @nivekastoreth)

  • DefaultEndpoint contains System.out.println(…) #765

  • Do not retry completed commands through RetryListener #767

Other

  • Upgrade to netty 4.0.53.Final/4.1.17.Final #646

  • Upgrade to Reactor Bismuth SR4 #647

  • Upgrade to Spring Framework 4.3.12 #648

  • Upgrade to Commons Pool 2.4.3 #650

  • Upgrade to RxJava 1.3.3 #651

  • Upgrade to RxJava2 2.1.6 #652

  • Upgrade to HdrHistogram 2.1.10 #653

  • Upgrade Redis versions on TravisCI #655

  • Upgrade to Reactor Bismuth SR5 #698

  • Upgrade to netty 4.1.21.Final #699

  • Upgrade to RxJava 1.3.6 #700

  • Upgrade to RxJava 2.1.9 #701

  • Upgrade to Reactor Bismuth SR6 #704

  • Upgrade to Netty 4.1.22 #744

  • Upgrade to RxJava 1.3.7 #745

  • Upgrade to Spring Framework 4.3.14 #746

  • Upgrade to Mockito 2.17 #747

  • Upgrade to AssertJ 3.9.1 #748

  • Upgrade to Log4j 2.11.0 #749

  • Upgrade to commons-lang3 3.7 #750

  • Upgrade to netty 4.1.23.Final #755

  • Upgrade to Reactor Bismuth SR8 #758

  • Upgrade to RxJava 1.3.8 #759

  • Extend documentation for argument objects #761

  • Upgrade to JavaParser 3.6.3 #769

  • Upgrade to netty 4.1.24.Final #770

  • Upgrade to RxJava 2.1.13 #771

详情见发布公告

下载地址

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Lettuce 5.1.0.M1 发布,带来 5 大功能特性变更
加载中

最新评论(7

吕兵阳
吕兵阳

引用来自“KL博客”的评论

还是redisson大法好

引用来自“吕兵阳”的评论

你们在用?

引用来自“KL博客”的评论

恩,redisson分布式利器,很方便的解决很多分布式场景下的问题
稳定性怎么样,一直感觉这种操作不如jedis直观。
KL博客
KL博客

引用来自“KL博客”的评论

还是redisson大法好

引用来自“吕兵阳”的评论

你们在用?
恩,redisson分布式利器,很方便的解决很多分布式场景下的问题
Tinian
Tinian
redisson的抽象度高,方便业务开发
polly
polly
我去,更新的好快
吕兵阳
吕兵阳

引用来自“KL博客”的评论

还是redisson大法好
你们在用?
KL博客
KL博客
还是redisson大法好
流浪喵
111
返回顶部
顶部