Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ruby] Update redis 4.6.0 → 5.0.7 (major) #227

Closed
wants to merge 1 commit into from

Conversation

depfu[bot]
Copy link
Contributor

@depfu depfu bot commented Aug 10, 2023

Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ redis (4.6.0 → 5.0.7) · Repo · Changelog

Release Notes

5.0.7 (from changelog)

  • Fix compatibility with redis-client 0.15.0 when using Redis Sentinel. Fix #1209.

5.0.6 (from changelog)

  • Wait for an extra config.read_timeout in blocking commands rather than an arbitrary 100ms. See #1175.
  • Treat ReadOnlyError as ConnectionError. See #1168.

5.0.5 (from changelog)

  • Fix automatic disconnection when the process was forked. See #1157.

5.0.4 (from changelog)

  • Cast ttl argument to integer in expire, setex and a few others.

5.0.3 (from changelog)

  • Add OutOfMemoryError as a subclass of CommandError

5.0.2 (from changelog)

  • Fix Redis#close to properly reset the fork protection check.

5.0.1 (from changelog)

  • Added a fake Redis::Connections.drivers method to be compatible with older sidekiq versions.

5.0.0 (from changelog)

  • Eagerly and strictly cast Integer and Float parameters.
  • Allow to call subscribe, unsubscribe, psubscribe and punsubscribe from a subscribed client. See #1131.
  • Use MD5 for hashing server nodes in Redis::Distributed. This should improve keys distribution among servers. See #1089.
  • Changed sadd and srem to now always return an Integer.
  • Added sadd? and srem? which always return a Boolean.
  • Added support for IDLE paramter in xpending.
  • Cluster support has been moved to a redis-clustering companion gem.
  • select no longer record the current database. If the client has to reconnect after select was used, it will reconnect to the original database.
  • Better support Float timeout in blocking commands. See #977.
  • Removed positional timeout in blocking commands (BLPOP, etc). Timeout now must be passed as an option: r.blpop("key", timeout: 2.5)
  • Removed logger option.
  • Removed reconnect_delay_max and reconnect_delay, you can pass precise sleep durations to reconnect_attempts instead.
  • Require Ruby 2.5+.
  • Removed the deprecated queue and commit methods. Use pipelined instead.
  • Removed the deprecated Redis::Future#==.
  • Removed the deprecated pipelined and multi signature. Commands now MUST be called on the block argument, not the original redis instance.
  • Removed Redis.current. You shouldn't assume there is a single global Redis connection, use a connection pool instead, and libaries using Redis should accept a Redis instance (or connection pool) as a config. E.g. MyLibrary.redis = Redis.new(...).
  • Removed the synchrony driver.
  • Removed Redis.exists_returns_integer, it's now always enabled.

4.8.1 (from changelog)

  • Automatically reconnect after fork regardless of reconnect_attempts

4.8.0 (from changelog)

  • Introduce sadd? and srem? as boolean returning versions of sadd and srem.
  • Deprecate sadd and srem returning a boolean when called with a single argument. To enable the redis 5.0 behavior you can set Redis.sadd_returns_boolean = true.
  • Deprecate passing timeout as a positional argument in blocking commands (brpop, blop, etc).

4.7.1 (from changelog)

  • Gracefully handle OpenSSL 3.0 EOF Errors (OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading). See #1106 This happens frequently on heroku-22.

4.7.0 (from changelog)

  • Support single endpoint architecture with SSL/TLS in cluster mode. See #1086.
  • zrem and zadd act as noop when provided an empty list of keys. See #1097.
  • Support IPv6 URLs.
  • Add Redis#with for better compatibility with connection_pool usage.
  • Fix the block form of multi called inside pipelined. Previously the MUTLI/EXEC wouldn't be sent. See #1073.

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.

🆕 connection_pool (added, 2.4.1)

🆕 redis-client (added, 0.15.0)


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu
Copy link
Contributor Author

depfu bot commented Oct 24, 2023

Closed in favor of #240.

@depfu depfu bot closed this Oct 24, 2023
@depfu depfu bot deleted the depfu/update/redis-5.0.7 branch October 24, 2023 08:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants