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 
     |