Lettuce 5.1.0.M1 发布,带来 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

详情见发布公告

下载地址

猜你喜欢

转载自www.oschina.net/news/96105/lettuce-5-1-0-m1-released