redis_cluster 0.2.3 → 0.2.4
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
- data/README.md +5 -0
- data/lib/redis_cluster/client.rb +5 -5
- data/lib/redis_cluster/node.rb +2 -2
- data/lib/redis_cluster/pool.rb +3 -3
- data/lib/redis_cluster/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23e7a2c7e3aa40a46f4161e2bb626c241ec3105a
|
4
|
+
data.tar.gz: 73dd569bb920fd6c7df63ec9493ed4828e847330
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06c46ad0e16120b44d787d271b2a808a6eff48a32fbd393ebc74140d4db1284ce1378053c373728ba40638aac9108f42af4a90fd56805180ced6a020fd40946b
|
7
|
+
data.tar.gz: 32f938112dc9104674624de00a783a518d827f86e8780b60c6355123925c359f610fa64f0fc0fcf87843485586a0f88da1c5deabcb38cea9aa25aaa3fe6907f8
|
data/README.md
CHANGED
@@ -32,6 +32,11 @@ rs.set "test", 1
|
|
32
32
|
rs.get "test"
|
33
33
|
```
|
34
34
|
|
35
|
+
now support keys command with scanning all nodes:
|
36
|
+
```ruby
|
37
|
+
rs.keys 'test*'
|
38
|
+
```
|
39
|
+
|
35
40
|
## Benchmark test
|
36
41
|
|
37
42
|
A simple benchmark at my macbook, start 4 master nodes (and 4 cold slave nodes), running with one ruby process.
|
data/lib/redis_cluster/client.rb
CHANGED
@@ -11,7 +11,7 @@ module RedisCluster
|
|
11
11
|
reload_pool_nodes
|
12
12
|
end
|
13
13
|
|
14
|
-
def execute(method, args)
|
14
|
+
def execute(method, args, &block)
|
15
15
|
ttl = Configuration::REQUEST_TTL
|
16
16
|
asking = false
|
17
17
|
try_random_node = false
|
@@ -19,7 +19,7 @@ module RedisCluster
|
|
19
19
|
while ttl > 0
|
20
20
|
ttl -= 1
|
21
21
|
begin
|
22
|
-
return @pool.execute(method, args, {asking: asking, random_node: try_random_node})
|
22
|
+
return @pool.execute(method, args, {asking: asking, random_node: try_random_node}, &block)
|
23
23
|
rescue Errno::ECONNREFUSED, Redis::TimeoutError, Redis::CannotConnectError, Errno::EACCES
|
24
24
|
try_random_node = true
|
25
25
|
sleep 0.1 if ttl < Configuration::REQUEST_TTL/2
|
@@ -38,13 +38,13 @@ module RedisCluster
|
|
38
38
|
end
|
39
39
|
|
40
40
|
Configuration::SUPPORT_SINGLE_NODE_METHODS.each do |method_name|
|
41
|
-
define_method method_name do |*args|
|
42
|
-
execute(method_name, args)
|
41
|
+
define_method method_name do |*args, &block|
|
42
|
+
execute(method_name, args, &block)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
def method_missing(method, *args, &block)
|
47
|
-
execute(method, args)
|
47
|
+
execute(method, args, &block)
|
48
48
|
end
|
49
49
|
|
50
50
|
private
|
data/lib/redis_cluster/node.rb
CHANGED
data/lib/redis_cluster/pool.rb
CHANGED
@@ -23,15 +23,15 @@ module RedisCluster
|
|
23
23
|
# other_options:
|
24
24
|
# asking
|
25
25
|
# random_node
|
26
|
-
def execute(method, args, other_options)
|
27
|
-
return
|
26
|
+
def execute(method, args, other_options, &block)
|
27
|
+
return send(method, args.first) if Configuration::SUPPORT_MULTI_NODE_METHODS.include?(method.to_s)
|
28
28
|
|
29
29
|
key = key_by_command(method, args)
|
30
30
|
raise NotSupportError if key.nil?
|
31
31
|
|
32
32
|
node = other_options[:random_node] ? random_node : node_by(key)
|
33
33
|
node.asking if other_options[:asking]
|
34
|
-
node.execute(method, args)
|
34
|
+
node.execute(method, args, &block)
|
35
35
|
end
|
36
36
|
|
37
37
|
def keys(glob = "*")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis_cluster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wangzc
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|