All Versions
46
Latest Version
Avg Release Cycle
41 days
Latest Release
308 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v9.0.0-rc.2 Changes
November 26, 2022๐ 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.
-
v9.0.0-beta.2 Changes
July 28, 2022๐ 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)
-
v9.0.0-beta.1 Changes
June 04, 2022๐ Bug Fixes
- #1943: xInfoConsumer.Idle should be time.Duration instead of int64 (#2052) (997ab5e), closes #1943
- โ add XInfoConsumers test (6f1a1ac)
- ๐ fix tests (3a722be)
- โ remove test(XInfoConsumer.idle), not a stable return value when tested. (f5fbb36)
- โก๏ธ update ChannelWithSubscriptions to accept options (c98c5f0)
- โก๏ธ update COMMAND parser for Redis 7 (b0bb514)
- ๐ use redis over ssh channel(#2057) (#2060) (3961b95)
๐ Features
- โ add ClientUnpause (91171f5)
- โ add NewXPendingResult for unit testing XPending (#2066) (b7fd09e)
- โ add WriteArg and Scan net.IP(#2062) (7d5167e)
- pool: add check for badConnection (a8a7665), closes #2053
- provide a username and password callback method, so that the plaintext username and password will not be stored in the memory, and the username and password will only be generated once when the CredentialsProvider is called. After the method is executed, the username and password strings on the stack will be released. (#2097) (56a3dbc)
- โฌ๏ธ upgrade to Redis 7 (d09c27e)
๐ v9 UNRELEASED
- โ Added support for RESP3 protocol.
- โ Removed
Pipeline.Close
since there is no real need to explicitly manage pipeline resources.Pipeline.Discard
is still available if you want to reset commands for some reason. - Replaced
*redis.Z
withredis.Z
since it is small enough to be passed as value. - ๐ Renamed
MaxConnAge
toConnMaxLifetime
. - ๐ Renamed
IdleTimeout
toConnMaxIdleTime
. - โ Removed connection reaper in favor of
MaxIdleConns
. - โ Removed
WithContext
.
-
v8.11.5 Changes
March 17, 2022๐ Bug Fixes
- โ add missing Expire methods to Cmdable (17e3b43)
- โ add whitespace for avoid unlikely colisions (7f7c181)
- example/otel compile error (#2028) (187c07c)
- extra/redisotel: set span.kind attribute to client (065b200)
- format (96f53a0)
- invalid type assert in stringArg (de6c131)
- ๐ rename Golang to Go (#2030) (b82a2d9)
- ๐ set timeout for WAIT command. Fixes #1963 (333fee1)
- โก๏ธ update some argument counts in pre-allocs (f6974eb)
๐ Features
- โ Add redis v7's NX, XX, GT, LT expire variants (e19bbb2)
- โ add support for acl sentinel auth in universal client (ab0ccc4)
- โ add support for COPY command (#2016) (730afbc)
- โ add support for passing extra attributes added to spans (39faaa1)
- โ add support for time.Duration write and scan (2f1b74e)
- redisotel: ability to override TracerProvider (#1998) (bf8d4aa)
- set net.peer.name and net.peer.port in otel example (69bf454)
-
v8.11.4 Changes
October 04, 2021 -
v8.11 Changes
- โ Remove OpenTelemetry metrics.
- ๐ Supports more redis commands and options.
-
v8.10 Changes
โ Removed extra OpenTelemetry spans from go-redis core. Now go-redis instrumentation only adds a single span with a Redis command (instead of 4 spans). There are multiple reasons behind this decision:
- Traces become smaller and less noisy.
- It may be costly to process those 3 extra spans for each query.
- go-redis no longer depends on OpenTelemetry.
Eventually we hope to replace the information that we no longer collect with OpenTelemetry Metrics.
-
v8.9 Changes
- ๐ Changed
PubSub.Channel
to only rely onPing
result. You can now useWithChannelSize
,WithChannelHealthCheckInterval
, andWithChannelSendTimeout
to override default settings.
- ๐ Changed
-
v8.8 Changes
- โก๏ธ To make updating easier, extra modules now have the same version as go-redis does. That means that you need to update your imports:
github.com/go-redis/redis/extra/redisotel -> github.com/go-redis/redis/extra/redisotel/v8 github.com/go-redis/redis/extra/rediscensus -> github.com/go-redis/redis/extra/rediscensus/v8