async-redis 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/async/redis/cluster_client.rb +5 -3
- data/lib/async/redis/context/generic.rb +1 -1
- data/lib/async/redis/context/transaction.rb +1 -1
- data/lib/async/redis/version.rb +1 -1
- data/license.md +2 -1
- data/readme.md +18 -0
- data/{changes.md → releases.md} +12 -6
- data.tar.gz.sig +0 -0
- metadata +5 -9
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a6afd9e0917905a3ac88663aab6185431af4f90230a160439131b137611a072
|
4
|
+
data.tar.gz: 503e41aea7adc5f2f103d442db5be4c37f9299c9fb9bbba33b040f8200237511
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 459502e1c7c5cfbb6250a4460f1dfa4b5e0cd2386e056f77696883521274d3ad0b6c25cd5a1e6ee3db393d18703782c643c1fe6b39e4cf22292cd26417b6af9b
|
7
|
+
data.tar.gz: 3119cf4d3b60ed724b68ed9fa2fc9dee2729a27657ebf1460453d236426d8e1c19f3f1717c5d0266fb85a9c7f821ca1e74f3e1e2321750b71805ecbefe084387
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# Released under the MIT License.
|
4
|
-
# Copyright, 2024, by Samuel Williams.
|
4
|
+
# Copyright, 2024-2025, by Samuel Williams.
|
5
|
+
# Copyright, 2025, by Travis Bell.
|
5
6
|
|
6
7
|
require_relative "client"
|
7
8
|
require "io/stream"
|
@@ -56,6 +57,7 @@ module Async
|
|
56
57
|
# @property endpoints [Array(Endpoint)] The list of cluster endpoints.
|
57
58
|
def initialize(endpoints, **options)
|
58
59
|
@endpoints = endpoints
|
60
|
+
@options = options
|
59
61
|
@shards = nil
|
60
62
|
end
|
61
63
|
|
@@ -93,7 +95,7 @@ module Async
|
|
93
95
|
end
|
94
96
|
|
95
97
|
if node = nodes.sample
|
96
|
-
return (node.client ||= Client.new(node.endpoint))
|
98
|
+
return (node.client ||= Client.new(node.endpoint, **@options))
|
97
99
|
end
|
98
100
|
end
|
99
101
|
|
@@ -101,7 +103,7 @@ module Async
|
|
101
103
|
|
102
104
|
def reload_cluster!(endpoints = @endpoints)
|
103
105
|
@endpoints.each do |endpoint|
|
104
|
-
client = Client.new(endpoint)
|
106
|
+
client = Client.new(endpoint, **@options)
|
105
107
|
|
106
108
|
shards = RangeMap.new
|
107
109
|
endpoints = []
|
data/lib/async/redis/version.rb
CHANGED
data/license.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# MIT License
|
2
2
|
|
3
|
-
Copyright, 2018-
|
3
|
+
Copyright, 2018-2025, by Samuel Williams.
|
4
4
|
Copyright, 2018, by Huba Nagy.
|
5
5
|
Copyright, 2019-2020, by David Ortiz.
|
6
6
|
Copyright, 2019, by Pierre Montelle.
|
@@ -13,6 +13,7 @@ Copyright, 2021, by Troex Nevelin.
|
|
13
13
|
Copyright, 2022, by Tim Willard.
|
14
14
|
Copyright, 2022, by Gleb Sinyavskiy.
|
15
15
|
Copyright, 2024, by Joan Lledó.
|
16
|
+
Copyright, 2025, by Travis Bell.
|
16
17
|
|
17
18
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
18
19
|
of this software and associated documentation files (the "Software"), to deal
|
data/readme.md
CHANGED
@@ -4,12 +4,30 @@ An asynchronous client for Redis including TLS. Support for streaming requests a
|
|
4
4
|
|
5
5
|
[](https://github.com/socketry/async-redis/actions?workflow=Test)
|
6
6
|
|
7
|
+
## Support
|
8
|
+
|
9
|
+
This gem supports both Valkey and Redis. It is designed to be compatible with the latest versions of both libraries. We also test Redis sentinel and cluster configurations.
|
10
|
+
|
7
11
|
## Usage
|
8
12
|
|
9
13
|
Please see the [project documentation](https://socketry.github.io/async-redis/) for more details.
|
10
14
|
|
11
15
|
- [Getting Started](https://socketry.github.io/async-redis/guides/getting-started/index) - This guide explains how to use the `async-redis` gem to connect to a Redis server and perform basic operations.
|
12
16
|
|
17
|
+
## Releases
|
18
|
+
|
19
|
+
Please see the [project releases](https://socketry.github.io/async-redis/releases/index) for all releases.
|
20
|
+
|
21
|
+
### v0.11.1
|
22
|
+
|
23
|
+
- Correctly pass `@options` to `Async::Redis::Client` instances created by `Async::Redis::ClusterClient`.
|
24
|
+
|
25
|
+
### v0.10.0
|
26
|
+
|
27
|
+
- [Add support for Redis Clusters](https://socketry.github.io/async-redis/releases/index#add-support-for-redis-clusters)
|
28
|
+
- [Add support for Redis Sentinels](https://socketry.github.io/async-redis/releases/index#add-support-for-redis-sentinels)
|
29
|
+
- [Improved Integration Tests](https://socketry.github.io/async-redis/releases/index#improved-integration-tests)
|
30
|
+
|
13
31
|
## Contributing
|
14
32
|
|
15
33
|
We welcome contributions to this project.
|
data/{changes.md → releases.md}
RENAMED
@@ -1,10 +1,16 @@
|
|
1
|
-
#
|
1
|
+
# Releases
|
2
2
|
|
3
|
-
##
|
3
|
+
## v0.11.1
|
4
|
+
|
5
|
+
- Correctly pass `@options` to `Async::Redis::Client` instances created by `Async::Redis::ClusterClient`.
|
6
|
+
|
7
|
+
## v0.10.0
|
8
|
+
|
9
|
+
### Add support for Redis Clusters
|
4
10
|
|
5
11
|
`Async::Redis::ClusterClient` is a new class that provides a high-level interface to a Redis Cluster. Due to the way clustering works, it does not provide the same interface as the `Async::Redis::Client` class. Instead, you must request an appropriate client for the key you are working with.
|
6
12
|
|
7
|
-
```ruby
|
13
|
+
``` ruby
|
8
14
|
endpoints = [
|
9
15
|
Async::Redis::Endpoint.parse("redis://redis-a"),
|
10
16
|
Async::Redis::Endpoint.parse("redis://redis-b"),
|
@@ -18,11 +24,11 @@ cluster_client.clients_for("key") do |client|
|
|
18
24
|
end
|
19
25
|
```
|
20
26
|
|
21
|
-
|
27
|
+
### Add support for Redis Sentinels
|
22
28
|
|
23
29
|
The previous implementation `Async::Redis::SentinelsClient` has been replaced with `Async::Redis::SentinelClient`. This new class uses `Async::Redis::Endpoint` objects to represent the sentinels and the master.
|
24
30
|
|
25
|
-
```ruby
|
31
|
+
``` ruby
|
26
32
|
sentinels = [
|
27
33
|
Async::Redis::Endpoint.parse("redis://redis-sentinel-a"),
|
28
34
|
Async::Redis::Endpoint.parse("redis://redis-sentinel-b"),
|
@@ -41,6 +47,6 @@ slave_client.session do |session|
|
|
41
47
|
end
|
42
48
|
```
|
43
49
|
|
44
|
-
|
50
|
+
### Improved Integration Tests
|
45
51
|
|
46
52
|
Integration tests for Redis Cluster and Sentinel have been added, using `docker-compose` to start the required services and run the tests. These tests are not part of the default test suite and must be run separately. See the documentation in the `sentinel/` and `cluster/` directories for more information.
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-redis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -17,7 +17,7 @@ authors:
|
|
17
17
|
- Pierre Montelle
|
18
18
|
- Salim Semaoune
|
19
19
|
- Tim Willard
|
20
|
-
|
20
|
+
- Travis Bell
|
21
21
|
bindir: bin
|
22
22
|
cert_chain:
|
23
23
|
- |
|
@@ -49,7 +49,7 @@ cert_chain:
|
|
49
49
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
50
50
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
51
51
|
-----END CERTIFICATE-----
|
52
|
-
date:
|
52
|
+
date: 2025-02-28 00:00:00.000000000 Z
|
53
53
|
dependencies:
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: async
|
@@ -121,13 +121,10 @@ dependencies:
|
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
123
|
version: '0.9'
|
124
|
-
description:
|
125
|
-
email:
|
126
124
|
executables: []
|
127
125
|
extensions: []
|
128
126
|
extra_rdoc_files: []
|
129
127
|
files:
|
130
|
-
- changes.md
|
131
128
|
- lib/async/redis.rb
|
132
129
|
- lib/async/redis/client.rb
|
133
130
|
- lib/async/redis/cluster_client.rb
|
@@ -144,13 +141,13 @@ files:
|
|
144
141
|
- lib/async/redis/version.rb
|
145
142
|
- license.md
|
146
143
|
- readme.md
|
144
|
+
- releases.md
|
147
145
|
homepage: https://github.com/socketry/async-redis
|
148
146
|
licenses:
|
149
147
|
- MIT
|
150
148
|
metadata:
|
151
149
|
documentation_uri: https://socketry.github.io/async-redis/
|
152
150
|
source_code_uri: https://github.com/socketry/async-redis.git
|
153
|
-
post_install_message:
|
154
151
|
rdoc_options: []
|
155
152
|
require_paths:
|
156
153
|
- lib
|
@@ -165,8 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
162
|
- !ruby/object:Gem::Version
|
166
163
|
version: '0'
|
167
164
|
requirements: []
|
168
|
-
rubygems_version: 3.
|
169
|
-
signing_key:
|
165
|
+
rubygems_version: 3.6.2
|
170
166
|
specification_version: 4
|
171
167
|
summary: A Redis client library.
|
172
168
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|