Skip to content

Commit a91ca81

Browse files
build(deps): Bump redix from 1.5.3 to 1.6.0 in /elixir-orchestration (#177)
Bumps [redix](https://github.com/whatyouhide/redix) from 1.5.3 to 1.6.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/whatyouhide/redix/blob/main/CHANGELOG.md">redix's changelog</a>.</em></p> <blockquote> <h2>v1.6.0</h2> <ul> <li>Add support for <strong>Redis Cluster</strong>. This is a major feature and this its first release, so use with care—I only tested it (extensively) in non-production-grade scenarios; it was tested on various synthetic environments (like with AWS ElastiCache and locally via Docker) but it has not seen the horrors of production traffic. See the <code>Redix.Cluster</code> documentation to get started.</li> <li>Add <code>Redix.PubSub.ping/2</code>.</li> <li>Fix Elixir 1.19/1.20 warnings.</li> </ul> <h2>Unreleased</h2> <h3>New features</h3> <ul> <li>Add support for <strong>reading from replicas</strong> in <code>Redix.Cluster</code>. Start the cluster with <code>read_from_replicas: true</code> to open and supervise a connection to every replica (each one gets a <code>READONLY</code> after connecting), then pass <code>route: :replica</code> or <code>route: :prefer_replica</code> to <code>Redix.Cluster.command/3</code> and <code>Redix.Cluster.pipeline/3</code> to send reads to replicas. The default routing stays <code>:primary</code>, so existing behavior is unchanged.</li> <li>Route commands outside <code>Redix.Cluster</code>'s built-in command table to the correct node. Previously commands the driver didn't recognize were treated as keyless and sent to a random node; now their keys are resolved against the server (via <code>COMMAND INFO</code>, with a <code>COMMAND GETKEYS</code> fallback for commands with movable keys) and the result is cached per command name, so repeated calls add no extra round-trips. The built-in table also grew to cover more commands directly (bit commands, the blocking <code>B*</code> list/sorted-set pops, hash-field expiration commands, <code>XSETID</code>, and <code>BITOP</code>).</li> <li>Add a <code>:readonly</code> option to <code>Redix.start_link/1</code> that issues <code>READONLY</code> after every (re)connection.</li> <li>Add a <code>:health_check_interval</code> option to <code>Redix.start_link/1</code> that detects <em>half-open</em> connections (the socket is open but the server stopped replying) and reconnects. This fixes slow recovery after a Sentinel failover where the old primary is paused (for example via <code>CLIENT PAUSE</code>): the reconnection re-queries the sentinels and lands on the new primary instead of staying wedged. Defaults to <code>:infinity</code> (disabled).</li> </ul> <h3>Changes</h3> <ul> <li>Verify SSL server hostnames the way browsers do (RFC 6125) by default, which accepts the <strong>wildcard certificates</strong> used by servers such as Amazon ElastiCache. This sets <code>customize_hostname_check</code> automatically; you can still override it (or any other default SSL option) through <code>:socket_opts</code>.</li> </ul> <h3>Bug fixes</h3> <ul> <li>Bound the total wall-clock of a steady-state <code>Redix.Cluster</code> topology refresh. The refresh runs on the cluster manager's process and probes seed/known nodes serially, so a few <em>black-holed</em> nodes (which accept the connection but never reply) used to block the manager—and every connection restart or <code>MOVED</code>/<code>ASK</code> redirect that needs it—for up to one connection <code>:timeout</code> <em>per node</em>, i.e. tens of seconds. A refresh now stops probing once it exhausts a single <code>:timeout</code> budget, relying on the next refresh for any skipped nodes. The initial topology discovery stays unbounded so startup reliably reaches a reachable seed.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/whatyouhide/redix/commits">compare view</a></li> </ul> </details> <br /> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent a056031 commit a91ca81

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

elixir-orchestration/mix.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"plug": {:hex, :plug, "1.20.3", "56c480c633ec2ce10140e236e15233bf576e1d323887d7c96711bd02ab5160db", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "be266aee1b8536ef6409d58cf39a3121319f0ec47cfa1b24024485aa0e76ad76"},
4141
"plug_crypto": {:hex, :plug_crypto, "2.1.1", "19bda8184399cb24afa10be734f84a16ea0a2bc65054e23a62bb10f06bc89491", [:mix], [], "hexpm", "6470bce6ffe41c8bd497612ffde1a7e4af67f36a15eea5f921af71cf3e11247c"},
4242
"postgrex": {:hex, :postgrex, "0.22.3", "bf65941737ee7a9adbe4a64c91080310d11703da343e8ac9188aacb9eb9f6f02", [:mix], [{:db_connection, "~> 2.9", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "f018c13752b2b46e8d35d7e2d84c3276557cbfd880769109021a1d0ee36c1cfe"},
43-
"redix": {:hex, :redix, "1.5.3", "4eaae29c75e3285c0ff9957046b7c209aa7f72a023a17f0a9ea51c2a50ab5b0f", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:nimble_options, "~> 0.5.0 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7b06fb5246373af41f5826b03334dfa3f636347d4d5d98b4d455b699d425ae7e"},
43+
"redix": {:hex, :redix, "1.6.0", "694179c7a3c71bffac8848fcbfe16f6f6e2a1e020f00a2ad01bc6484815470d1", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:nimble_options, "~> 0.5.0 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b2eccb05e02f21c0c3ca57513e6bacb4dd48e6406dadbd7ff9fbe07bd6745999"},
4444
"req": {:hex, :req, "0.6.2", "b9b2024f35bcf60a92cc8cad2eaaf9d4e7aace463ff74be1afe5986830184413", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.21", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 2.0.6 or ~> 2.1", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "cc9cd30a2ddd04989929b887178e1610c940456d962c6c3a52df6146d2eef9bf"},
4545
"statistex": {:hex, :statistex, "1.1.1", "73612aa7f79e53c30569be065fd121e380f1cf57bc4c2da5b41be9246da18df9", [:mix], [], "hexpm", "310c4b49b34adf683de3103639006bed233ab54c08a4add65a531448e653857c"},
4646
"stream_data": {:hex, :stream_data, "1.3.0", "bde37905530aff386dea1ddd86ecbf00e6642dc074ceffc10b7d4e41dfd6aac9", [:mix], [], "hexpm", "3cc552e286e817dca43c98044c706eec9318083a1480c52ae2688b08e2936e3c"},

0 commit comments

Comments
 (0)