All Versions
46
Latest Version
Avg Release Cycle
41 days
Latest Release
509 days ago

Changelog History
Page 1

  • v9.0.0-rc.2 Changes

    November 26, 2022

    ๐Ÿ› Bug Fixes

    ๐Ÿ”‹ Features

    • โž• add HasErrorPrefix (d3d8002)
    • โž• add support for SINTERCARD command (bc51c61)

    ๐Ÿš€ 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 into ClusterOptions, 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 with redisotel.InstrumentTracing. See [example](example/otel) and documentation.
    • Replaced *redis.Z with redis.Z since it is small enough to be passed as value without making an allocation.
    • ๐Ÿ“‡ Renamed the option MaxConnAge to ConnMaxLifetime.
    • ๐Ÿ“‡ Renamed the option IdleTimeout to ConnMaxIdleTime.
    • โœ‚ Removed connection reaper in favor of MaxIdleConns.
    • โœ‚ Removed WithContext since context.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 via sync.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 with redis.Z since it is small enough to be passed as value.
    • ๐Ÿ“‡ Renamed MaxConnAge to ConnMaxLifetime.
    • ๐Ÿ“‡ Renamed IdleTimeout to ConnMaxIdleTime.
    • โœ‚ 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

    ๐Ÿ”‹ Features

    • โž• add acl auth support for sentinels (f66582f)
    • โž• add Cmd.{String,Int,Float,Bool}Slice helpers and an example (5d3d293)
    • โž• add SetVal method for each command (168981d)
  • 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 on Ping result. You can now use WithChannelSize, WithChannelHealthCheckInterval, and WithChannelSendTimeout to override default settings.
  • 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
    
  • v8.5 Changes

    • knadh contributed long-awaited ability to scan Redis Hash into a struct:
    err := rdb.HGetAll(ctx, "hash").Scan(&data)
    
    err := rdb.MGet(ctx, "key1", "key2").Scan(&data)