redis v9.0.0-rc.2 Release Notes
Release Date: 2022-11-26 // almost 2 years ago-
๐ Bug Fixes
- capture error correctly in withConn (d1bfaba)
- ๐ fixes ring.SetAddrs and rebalance race (#2283) (d83436b)
- read in route_randomly query param correctly (f236053)
- reduce
SetAddrs
shards lock contention (6c05a9f), closes /github.com/go-redis/redis/pull/2190#discussion_r953040289 #2077 - wrap cmds in Conn.TxPipeline (5053db2)
๐ Features
๐ v9 UNRELEASED
โ Added
- โ Added support for RESP3 protocol. Contributed by @monkey92t who has done a lot of work recently.
- โ Added
ContextTimeoutEnabled
option that controls whether the client respects context timeouts and deadlines. See Redis Timeouts for details. - โ Added
ParseClusterURL
to parse URLs intoClusterOptions
, for example,redis://user:password@localhost:6789?dial_timeout=3&read_timeout=6s&addr=localhost:6790&addr=localhost:6791
. - โ Added metrics instrumentation using
redisotel.IstrumentMetrics
. See documentation
๐ Changed
- โ Removed asynchronous cancellation based on the context timeout. It was racy in v8 and is completely gone in v9.
- Reworked hook interface and added
DialHook
. - ๐ Replaced
redisotel.NewTracingHook
withredisotel.InstrumentTracing
. See [example](example/otel) and documentation. - Replaced
*redis.Z
withredis.Z
since it is small enough to be passed as value without making an allocation. - ๐ Renamed the option
MaxConnAge
toConnMaxLifetime
. - ๐ Renamed the option
IdleTimeout
toConnMaxIdleTime
. - โ Removed connection reaper in favor of
MaxIdleConns
. - โ Removed
WithContext
sincecontext.Context
can be passed directly as an arg. - โ Removed
Pipeline.Close
since there is no real need to explicitly manage pipeline resources and it can be safely reused viasync.Pool
etc.Pipeline.Discard
is still available if you want to reset commands for some reason.
๐ Fixed
- ๐ Improved and fixed pipeline retries.
- ๐ As usual, added more commands and fixed some bugs.
Previous changes from v9.0.0-beta.2
-
๐ Bug Fixes
- ๐ #2114 for redis-server not support Hello (b6d2a92)
- โ additional node failures in clustered pipelined reads (03376a5)
- โก๏ธ disregard failed pings in updateLatency() for cluster nodes (64f972f)
- โ don't panic when test cannot start (9e16c79)
- ๐ handle panic in ringShards Hash function when Ring got closed (a80b84f), closes #2126
- ignore Nil error when reading EntriesRead (89d6dfe)
- ๐ฒ log errors from cmdsInfoCache (fa4d1ea)
- ๐ฆ provide a signal channel to end heartbeat goroutine (f032c12)
- โ remove conn reaper from the pool and uptrace option names (f6a8adc)
- ๐ฆ replace heartbeat signal channel with context.WithCancel (20d0ca2)