redis 3.2.2 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of redis might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +9 -3
- data/CHANGELOG.md +14 -0
- data/README.md +85 -3
- data/lib/redis.rb +117 -74
- data/lib/redis/client.rb +32 -14
- data/lib/redis/connection/hiredis.rb +3 -1
- data/lib/redis/connection/ruby.rb +56 -2
- data/lib/redis/connection/synchrony.rb +11 -2
- data/lib/redis/subscribe.rb +10 -2
- data/lib/redis/version.rb +1 -1
- data/redis.gemspec +2 -2
- data/test/client_test.rb +59 -0
- data/test/connection_handling_test.rb +27 -0
- data/test/distributed_internals_test.rb +1 -1
- data/test/lint/blocking_commands.rb +1 -1
- data/test/lint/sorted_sets.rb +4 -4
- data/test/publish_subscribe_test.rb +28 -0
- data/test/ssl_test.rb +66 -0
- data/test/support/redis_mock.rb +13 -2
- data/test/support/ssl/gen_certs.sh +31 -0
- data/test/support/ssl/trusted-ca.crt +25 -0
- data/test/support/ssl/trusted-ca.key +27 -0
- data/test/support/ssl/trusted-cert.crt +81 -0
- data/test/support/ssl/trusted-cert.key +28 -0
- data/test/support/ssl/untrusted-ca.crt +26 -0
- data/test/support/ssl/untrusted-ca.key +27 -0
- data/test/support/ssl/untrusted-cert.crt +82 -0
- data/test/support/ssl/untrusted-cert.key +28 -0
- data/test/thread_safety_test.rb +30 -0
- metadata +39 -17
@@ -0,0 +1,28 @@
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCac+dF/NO1Sr29
|
3
|
+
rTDlJHQ4AYmPqZC/PEq/0fFe28iqJlnm7LOgD010Wd3JJy/hSH0w2VkGLynw0SUz
|
4
|
+
eV9YnddUyKeqGoQAooVjMszvc32wJsaV8YYWaDhjVwkNb2pw6HU7crSxTQEOAQ6/
|
5
|
+
v2qMiP4Ny4hDG9rtDIglM/e5sfwyuJTJIHysSeTBWJNpDkHj35bjRxEUjORLtlbf
|
6
|
+
b17SSNyhipjMSwKJler23qU6nAZ88HwJbycR8rEbR2uj6tbuoWWRhM8ugdNVSugB
|
7
|
+
TnJBrJLgfXz+hfAu8e5KgPlOWrSVbLv+/0ZYSnv8oGNZXQFbYwZclIMwJ4HwGhOJ
|
8
|
+
Wlqi4g/rAgMBAAECggEAPX3fmfGqqAb1u8p0KQZ2bsXN6rBrvHdYmz4OhuGh5nwW
|
9
|
+
VuXuLc9p2uTcc/VyDpM5pHUkCF5GqGXcFb5Aw5sz28F3XzXnUAlkabYT+VFVvQfz
|
10
|
+
EEd0Rv9/U62XIQ42pnUmF2D3p48s2FJ7eMPQu9reqsdZnL4+TxoqKgWinv/JlLdh
|
11
|
+
zBxjgVgaDMsvVc4cuuT6bcI3DUe2F9ALBKfaCxZoOUSsmgieuXog00Bzv0NmZoUD
|
12
|
+
WsAX0syzUlwjVmCr8J4I0IByYAbn1S/ozU141Z+H+VUyuEpYw0zDqDNrlmdYclc8
|
13
|
+
neoq8Xj9Cx1zHdF5H3aT9SLUGxdHPJpED9wQNx2toQKBgQDJcgJEG39u3h3mW/At
|
14
|
+
f8jl8evar5nUOOn5AIxVGFAWx4ZvoboxHSRlS6UkF0AImlH4L7xQESb9BMzOrObN
|
15
|
+
PBNQrccH+fz1o1fHDhob7EvyMMwzmDCPpQnN/6KXRzapu2MDFvlMkEMITTN7J0En
|
16
|
+
c9BOxo06Q4DKXGVCiWmbIwXihQKBgQDER/KfaWRZWOA2mQ26giJVjUX4+s1GeQM0
|
17
|
+
V4AIo1KS6fDzh68RsAQpMTx/N8aHEcxf+2qGIOTCvFY3Nxqe5aw/Xiz47MPlYulM
|
18
|
+
OecovSO96nidhyv2Zux+HpvI85tcWTyORi+RWho51gTOLth6BJ4uvSsaooWmO0Va
|
19
|
+
GoIxKcaLrwKBgH/guuWHWy8DG5H3fRE1FFA8cc+iN5HMC2NBYNRIGddME+BblznE
|
20
|
+
WS1ghtXRWJnddPmLPAzLxqdJ28W7ZsyUPWKy3i0HGfjJF1jKb/KX32JAbfC2xOT7
|
21
|
+
DK1TgWBtGZtH1EPK2rkqvxLPB0Y/lhG4aF0Jl++LmH9dhf5mAr8zzXGNAoGBAKEi
|
22
|
+
l7H66aDX76mi2LxmnR0yz2DpNKBINDNCKh/tRJrLZz3mA/k3URMoEow2E8tK90dM
|
23
|
+
tVTLqEGeMAFAQaB02IVlIPJyHRgxrWkgl/6/15nP5ZkdISA1uqyHIElGhCK6N5Zt
|
24
|
+
VBu1ppYYdvV1S85QADRKpBpHlgSz3+lqnbsSmqaNAoGAacA3XSIzTHj6+06VzEHN
|
25
|
+
aO2LJbBxl6Eduj6eTEgcZBlQOX6cVvaleTAT2g2xM0aGMV4StmdijUdktjBQVLpH
|
26
|
+
8PBTqlfVuLXEXQd+qWMpUJwEkh/pdmf9EPoLSfp3zQLaNI/kCg3jQtR4n6/68hfi
|
27
|
+
5Q6L0mN+SoB+jRNPDSV7JWA=
|
28
|
+
-----END PRIVATE KEY-----
|
data/test/thread_safety_test.rb
CHANGED
@@ -28,5 +28,35 @@ class TestThreadSafety < Test::Unit::TestCase
|
|
28
28
|
assert_equal ["1"], $foos.uniq
|
29
29
|
assert_equal ["2"], $bars.uniq
|
30
30
|
end
|
31
|
+
|
32
|
+
def test_thread_safety_queue_commit
|
33
|
+
redis = Redis.new(OPTIONS)
|
34
|
+
redis.set "foo", 1
|
35
|
+
redis.set "bar", 2
|
36
|
+
|
37
|
+
sample = 100
|
38
|
+
|
39
|
+
t1 = Thread.new do
|
40
|
+
sample.times do
|
41
|
+
r.queue("get", "foo")
|
42
|
+
end
|
43
|
+
|
44
|
+
$foos = r.commit
|
45
|
+
end
|
46
|
+
|
47
|
+
t2 = Thread.new do
|
48
|
+
sample.times do
|
49
|
+
r.queue("get", "bar")
|
50
|
+
end
|
51
|
+
|
52
|
+
$bars = r.commit
|
53
|
+
end
|
54
|
+
|
55
|
+
t1.join
|
56
|
+
t2.join
|
57
|
+
|
58
|
+
assert_equal ["1"], $foos.uniq
|
59
|
+
assert_equal ["2"], $bars.uniq
|
60
|
+
end
|
31
61
|
end
|
32
62
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ezra Zygmuntowicz
|
@@ -16,36 +16,36 @@ authors:
|
|
16
16
|
autorequire:
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
|
-
date:
|
19
|
+
date: 2016-04-18 00:00:00.000000000 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: rake
|
23
23
|
requirement: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - <
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 11.0.0
|
28
28
|
type: :development
|
29
29
|
prerelease: false
|
30
30
|
version_requirements: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - <
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 11.0.0
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: test-unit
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 3.1.5
|
42
42
|
type: :development
|
43
43
|
prerelease: false
|
44
44
|
version_requirements: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - '='
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
48
|
+
version: 3.1.5
|
49
49
|
description: |2
|
50
50
|
A Ruby client that tries to match Redis' API one-to-one, while still
|
51
51
|
providing an idiomatic interface. It features thread-safety,
|
@@ -56,10 +56,10 @@ executables: []
|
|
56
56
|
extensions: []
|
57
57
|
extra_rdoc_files: []
|
58
58
|
files:
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
59
|
+
- .gitignore
|
60
|
+
- .travis.yml
|
61
|
+
- .travis/Gemfile
|
62
|
+
- .yardopts
|
63
63
|
- CHANGELOG.md
|
64
64
|
- Gemfile
|
65
65
|
- LICENSE
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- redis.gemspec
|
100
100
|
- test/bitpos_test.rb
|
101
101
|
- test/blocking_commands_test.rb
|
102
|
+
- test/client_test.rb
|
102
103
|
- test/command_map_test.rb
|
103
104
|
- test/commands_on_hashes_test.rb
|
104
105
|
- test/commands_on_hyper_log_log_test.rb
|
@@ -151,10 +152,20 @@ files:
|
|
151
152
|
- test/sentinel_command_test.rb
|
152
153
|
- test/sentinel_test.rb
|
153
154
|
- test/sorting_test.rb
|
155
|
+
- test/ssl_test.rb
|
154
156
|
- test/support/connection/hiredis.rb
|
155
157
|
- test/support/connection/ruby.rb
|
156
158
|
- test/support/connection/synchrony.rb
|
157
159
|
- test/support/redis_mock.rb
|
160
|
+
- test/support/ssl/gen_certs.sh
|
161
|
+
- test/support/ssl/trusted-ca.crt
|
162
|
+
- test/support/ssl/trusted-ca.key
|
163
|
+
- test/support/ssl/trusted-cert.crt
|
164
|
+
- test/support/ssl/trusted-cert.key
|
165
|
+
- test/support/ssl/untrusted-ca.crt
|
166
|
+
- test/support/ssl/untrusted-ca.key
|
167
|
+
- test/support/ssl/untrusted-cert.crt
|
168
|
+
- test/support/ssl/untrusted-cert.key
|
158
169
|
- test/support/wire/synchrony.rb
|
159
170
|
- test/support/wire/thread.rb
|
160
171
|
- test/synchrony_driver.rb
|
@@ -173,23 +184,24 @@ require_paths:
|
|
173
184
|
- lib
|
174
185
|
required_ruby_version: !ruby/object:Gem::Requirement
|
175
186
|
requirements:
|
176
|
-
- -
|
187
|
+
- - '>='
|
177
188
|
- !ruby/object:Gem::Version
|
178
189
|
version: '0'
|
179
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
191
|
requirements:
|
181
|
-
- -
|
192
|
+
- - '>='
|
182
193
|
- !ruby/object:Gem::Version
|
183
194
|
version: '0'
|
184
195
|
requirements: []
|
185
196
|
rubyforge_project:
|
186
|
-
rubygems_version: 2.4.
|
197
|
+
rubygems_version: 2.4.6
|
187
198
|
signing_key:
|
188
199
|
specification_version: 4
|
189
200
|
summary: A Ruby client library for Redis
|
190
201
|
test_files:
|
191
202
|
- test/bitpos_test.rb
|
192
203
|
- test/blocking_commands_test.rb
|
204
|
+
- test/client_test.rb
|
193
205
|
- test/command_map_test.rb
|
194
206
|
- test/commands_on_hashes_test.rb
|
195
207
|
- test/commands_on_hyper_log_log_test.rb
|
@@ -242,10 +254,20 @@ test_files:
|
|
242
254
|
- test/sentinel_command_test.rb
|
243
255
|
- test/sentinel_test.rb
|
244
256
|
- test/sorting_test.rb
|
257
|
+
- test/ssl_test.rb
|
245
258
|
- test/support/connection/hiredis.rb
|
246
259
|
- test/support/connection/ruby.rb
|
247
260
|
- test/support/connection/synchrony.rb
|
248
261
|
- test/support/redis_mock.rb
|
262
|
+
- test/support/ssl/gen_certs.sh
|
263
|
+
- test/support/ssl/trusted-ca.crt
|
264
|
+
- test/support/ssl/trusted-ca.key
|
265
|
+
- test/support/ssl/trusted-cert.crt
|
266
|
+
- test/support/ssl/trusted-cert.key
|
267
|
+
- test/support/ssl/untrusted-ca.crt
|
268
|
+
- test/support/ssl/untrusted-ca.key
|
269
|
+
- test/support/ssl/untrusted-cert.crt
|
270
|
+
- test/support/ssl/untrusted-cert.key
|
249
271
|
- test/support/wire/synchrony.rb
|
250
272
|
- test/support/wire/thread.rb
|
251
273
|
- test/synchrony_driver.rb
|